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
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 【杭电多校比赛记录】2025“钉耙编程”中国大学生算法设计春季联赛(1)
2019-07-11 nodejs调试工具 node-inspect
2019-07-11 Node 脚本的调试工具
2018-07-11 netcat
2018-07-11 win上查看某个端口是否打开