python |
您所在的位置:网站首页 › 人脸的素描画法图片 › python |
一、前言
用python画素描画的方式有很多种, 常见的有通过opencv、pil来进行转换 这里给大家分享通过pil实现图片转素描风格绘画的方式。 对人像的转换出来看就一般,对风景的转化看着还行。 大佬可优化一下算法。 二、效果 1.风景原图: 原图: 原图: 1.python3+ 2.numpy 3.pillow 四、源码分享 from PIL import Image import numpy as np import tkinter.filedialog root = tkinter.Tk().withdraw() filename = tkinter.filedialog.askopenfilename() # 打开选择文件对话框 try: depth = 30 # 0-100,越高,颜色越深 picture_grad = np.gradient(np.asarray(Image.open(filename).convert('L')).astype('int')) # 取图像灰度的梯度值 grad_x, grad_y = picture_grad[0] * depth / 100., picture_grad[1] * depth / 100. # 将获取的维度梯度值进行深度处理 base = np.sqrt(grad_x ** 2 + grad_y ** 2 + 1.) # 降噪基 _x, _y, _z = grad_x / base, grad_y / base, 1. / base sce_z, sce_x = np.pi / 2.1, np.pi / 3 # 光源的俯视角度值和方位角度值 # 光源对x,y,z 轴的影响 dx, dy, dz = np.cos(sce_z) * np.cos(sce_x), np.cos(sce_z) * np.sin(sce_x), np.sin(sce_z) Normalized = 255 * (dx * _x + dy * _y + dz * _z).clip(0, 255) # 光源归一化 im = Image.fromarray(Normalized.astype('uint8')) # 重构图像 im.save('转换后的素描图.jpg') # 保存转换后的图片 im.show() # 展示转换后的图片 except Exception: print('转换失败!') 五、成品分享可直接运行版下载地址: 已经打包成exe文件了,Windows环境下可直接点击运行 百度网盘下载地址:https://pan.baidu.com/s/1iz3qKx7kLIIwFsOTujDxQg 提取码:1lb7 CSDN下载地址:https://download.csdn.net/download/momoda118/20719184 分享暂时到这里,小伙伴们点赞、收藏、评论是对我最大的支持!! 欢迎访问往期文章! 六、往期文章回顾python小爬虫-28行代码实现图形化在线翻译! python-85行代码完成贪吃蛇和关卡升级:是男人就坚持到第10关! |
今日新闻 |
推荐新闻 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |