zoukankan      html  css  js  c++  java
  • python工具——pillow

    PIL——Python Imaging Library是一个非常好用的图像处理库

    在Python3中用Pillow代替PIL

    安装

    pip install pillow

    eg:

    原图

    in.jpg

    显示图片

    from PIL import Image
    old_image = "D:\python\demo\in.jpg"
    im = Image.open(old_image)
    im.show()

    抓取屏幕

    from PIL import ImageGrab
    im = ImageGrab.grab()
    im.save('D:\python\demo\screen.jpg', 'jpeg')
    im.show()

    模糊图片

    from PIL import Image,ImageFilter
    old_image = "D:\python\demo\in.jpg"
    im = Image.open(old_image)
    im2 = im.filter(ImageFilter.BLUR)
    im2.save('D:\python\demo\filter.jpg', 'jpeg')

    运行后生成

    filter.jpg

    生成手绘图

    from PIL import Image
    import numpy as np
     
    # 原始图片路径
    old_image = "D:\python\demo\in.jpg"
    # 要生成的手绘图片路径
    new_image = "D:\python\demo\out.jpg"
    a = np.asarray(Image.open(old_image).convert('L')).astype('float')
    depth = 10.                      # (0-100)
    grad = np.gradient(a)            #取图像灰度的梯度值
    grad_x, grad_y = grad            #分别取横纵图像梯度值
    grad_x = grad_x*depth/100.
    grad_y = grad_y*depth/100.
    A = np.sqrt(grad_x**2 + grad_y**2 + 1.)
    uni_x = grad_x/A
    uni_y = grad_y/A
    uni_z = 1./A
     
    vec_el = np.pi/2.2                   #光源的俯视角度,弧度值
    vec_az = np.pi/4.                    #光源的方位角度,弧度值
    dx = np.cos(vec_el)*np.cos(vec_az)   #光源对x 轴的影响
    dy = np.cos(vec_el)*np.sin(vec_az)   #光源对y 轴的影响
    dz = np.sin(vec_el)                  #光源对z 轴的影响
     
    b = 255*(dx*uni_x + dy*uni_y + dz*uni_z) #光源归一化
    b = b.clip(0,255)
     
    im = Image.fromarray(b.astype('uint8'))  #重构图像
    im.save(new_image)
    print('complete...')

    运行后生成图片

     out.jpg

    说明:

      使用numpy中的gradient()提取灰色图像的梯度

      对梯度值进行操作,重构每个像素值

      添加光源,重构图像

    官网

    https://pillow.readthedocs.io/en/latest/handbook/index.html

  • 相关阅读:
    Security » Authorization » 要求处理器中的依赖注入
    Security » Authorization » 基于自定义策略的授权
    Security » Authorization » 基于声明的授权
    Security » Authorization » 基于角色的授权
    CentOS下下载软件,不安装的方法
    rsync+sersync+inotify实现服务器间文件同步之一
    linux查看机器负载
    htpasswd建立和更新存储用户名、密码
    由异常掉电问题---谈xfs文件系统
    Flashcache基本使用及注意事项
  • 原文地址:https://www.cnblogs.com/baby123/p/15000199.html
Copyright © 2011-2022 走看看