python-20行代码将图片转素描画(附源码和成品下载地址)
一、前言
用python画素描画的方式有很多种,
常见的有通过opencv、pil来进行转换
这里给大家分享通过pil实现图片转素描风格绘画的方式。
对人像的转换出来看就一般,对风景的转化看着还行。
大佬可优化一下算法。
二、效果
1.风景
原图:
转换后:
2.人像
原图:
转换后:
3.物品
原图:
转换后:
三、环境要求
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. / basesce_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关!
python-20行代码将图片转素描画(附源码和成品下载地址)相关推荐
- 20行Python代码实现图形化翻译工具(附源码和成品下载地址)
文章目录 一.实现效果 二.实现思路 三.核心源码 四.源码和成品分享 五.总结 一.实现效果 话不多说,直接上演示效果: 1.中文转英文 <<点我获取[源码]和[可直接运行]的文件< ...
- 免费开源的高精度OCR文本提取,支持 100 多种语言、自动文本定位和脚本检测,几行代码即可实现离线使用(附源码)
免费开源的高精度OCR文本提取,支持 100 多种语言.自动文本定位和脚本检测,几行代码即可实现离线使用(附源码). 要从图像.照片中提取文本吗?是否刚刚拍了讲义的照片并想将其转换为文本?那么您将需要 ...
- 用python写的代码输入助手小程序(附源码)
目录 运行: 使用: 添加: 编辑: 创建新的空数据库: 命令太多,很容易忘记,还有很多代码片段想保存下来用到的时候能够快速输入,提高开发效率.在网上找了很多,发现都不是自己想要的.于是就用pytho ...
- c语言程序员写贪吃蛇代码28,厉害了,程序员28行代码写贪吃蛇游戏,附源码!...
对于贪吃蛇游戏,大家基本上都玩过,但是作为一个程序员,大家是否想过要自己去写一个贪吃蛇,毕竟玩别人写的游戏和自己写的游戏是两种截然不同的感受,而且也可以通过制作来提升自己的技术! 其实贪吃蛇的逻辑并不 ...
- 记事本贪吃蛇游戏代码_厉害了,程序员28行代码写贪吃蛇游戏,附源码!
对于贪吃蛇游戏,大家基本上都玩过,但是作为一个程序员,大家是否想过要自己去写一个贪吃蛇,毕竟玩别人写的游戏和自己写的游戏是两种截然不同的感受,而且也可以通过制作来提升自己的技术! 其实贪吃蛇的逻辑并不 ...
- 500 行代码写一个俄罗斯方块游戏(附源码)
点击上方[全栈开发者社区]→右上角[...]→[设为星标⭐] 导读:本文我们要制作一个俄罗斯方块游戏. 作者 | 派森学python 来源 | https://segmentfault.com/a/1 ...
- 100个必会的python脚本-100行Python代码实现自动抢火车票(附源码)
前言 又要过年了,今年你不妨自己写一段代码来抢回家的火车票,是不是很Cool.下面话不多说了,来一起看看详细的介绍吧. 先准备好: 12306网站用户名和密码 chrome浏览器及下载chromedr ...
- 20220517 Python 制作一个儿童学习软件 (附源码和软件下载) 包含语音合成 视频播放 pyqt pptsx3 Qmovie request pygame 音频播放
20220517 Python 制作一个儿童学习软件 (附源码和软件下载) 包含语音合成 视频播放 pyqt pptsx3 Qmovie request pygame 音频播放 文章目录 202205 ...
- python画圣诞帽_使用Python给头像加上圣诞帽或圣诞老人小图标附源码
随着圣诞的到来,想给给自己的头像加上一顶圣诞帽.如果不是头像,就加一个圣诞老人陪伴. 用Python给头像加上圣诞帽,看了下大概也都是来自2017年大神的文章:https://zhuanlan.zhi ...
- python画圣诞老人_使用Python给头像加上圣诞帽或圣诞老人小图标附源码
随着圣诞的到来,想给给自己的头像加上一顶圣诞帽.如果不是头像,就加一个圣诞老人陪伴. 用Python给头像加上圣诞帽,看了下大概也都是来自2017年大神的文章:https://zhuanlan.zhi ...
最新文章
- 用神经网络二分类理论重述双原子化合物的成键过程
- 【技术贴】解决 myeclipse打不开报错an error has occurred, see .
- Scala中可以定义多个package
- 5G NR CSI-RS
- redis 集群的密码设置
- 迷你sql profile,给缺少sql跟踪的朋友们
- QCA9531模块ART 认证测试指导
- 多开 android模拟器,安卓模拟器如何多开窗口保证游戏不封号
- 计算机为啥系统保护设置不了,Win7系统下不能设置电脑屏幕保护程序的时间怎么办...
- 使用Motion-Vector实现Real-time人体行为识别
- em在聊天中是什么意思_EM是什么意思?有几种解释?
- iTunes 给iPhone制作铃声
- 30天自制操作系统(day10)
- 为VMware vSphere创建Ubuntu 18.04 Terraform模板
- 通达信版弘历软件指标_通达信获利分析仿弘历软件的六彩神龙指标公式-通达信公式...
- 彻底搞懂MySQL表锁、行锁和叶锁
- anchor free和anchor based的区别
- windows防火墙是干什么的_windows的防火墙
- 什么是echo服务?如何开启?
- iOS开发 mov视频文件转换成其他视频文件格式