python实现图片彩色转化为素描
作者:zh_250 时间:2021-12-02 03:57:36
本文实例为大家分享了Python将图片彩色转化为素描的具体代码,供大家参考,具体内容如下
第一种:
from PIL import Image, ImageFilter, ImageOps
img = Image.open('E:\\picture\\1.png')
def dodge(a, b, alpha):
return min(int(a*255/(256-b*alpha)), 255)
def draw(img, blur=25, alpha=1.0):
img1 = img.convert('L') #图片转换成灰色
img2 = img1.copy()
img2 = ImageOps.invert(img2)
for i in range(blur): #模糊度
img2 = img2.filter(ImageFilter.BLUR)
width, height = img1.size
for x in range(width):
for y in range(height):
a = img1.getpixel((x, y))
b = img2.getpixel((x, y))
img1.putpixel((x, y), dodge(a, b, alpha))
img1.show()
img1.save('E:\\picture\\10.png')
draw(img)
第二种:
from PIL import Image
import os
# 图像组成:红绿蓝 (RGB)三原色组成 亮度(255,255,255)
image = "E:\\picture\\123.png"
img = Image.open(image)
img_all = "E:\\picture\\1234.png"
new = Image.new("L", img.size, 255)
width, height = img.size
img = img.convert("L")
# print(img.size)
# print(img.mode) #RBG
#
# img_get = img.getpixel((0, 0))
# print(img_get) #三原色通道
#
# img_L=img.convert('L')
# print(img_L)
# img_get_L=img_L.getpixel((0,0)) #换算 得到灰度值
# print(img_get_L)
# 定义画笔的大小
Pen_size = 3
# 色差扩散器
Color_Diff = 6
for i in range(Pen_size + 1, width - Pen_size - 1):
for j in range(Pen_size + 1, height - Pen_size - 1):
# 原始的颜色
originalColor = 255
lcolor = sum([img.getpixel((i - r, j)) for r in range(Pen_size)]) // Pen_size
rcolor = sum([img.getpixel((i + r, j)) for r in range(Pen_size)]) // Pen_size
# 通道----颜料
if abs(lcolor - rcolor) > Color_Diff:
originalColor -= (255 - img.getpixel((i, j))) // 4
new.putpixel((i, j), originalColor)
ucolor = sum([img.getpixel((i, j - r)) for r in range(Pen_size)]) // Pen_size
dcolor = sum([img.getpixel((i, j + r)) for r in range(Pen_size)]) // Pen_size
# 通道----颜料
if abs(ucolor - dcolor) > Color_Diff:
originalColor -= (255 - img.getpixel((i, j))) // 4
new.putpixel((i, j), originalColor)
acolor = sum([img.getpixel((i - r, j - r)) for r in range(Pen_size)]) // Pen_size
bcolor = sum([img.getpixel((i + r, j + r)) for r in range(Pen_size)]) // Pen_size
# 通道----颜料
if abs(acolor - bcolor) > Color_Diff:
originalColor -= (255 - img.getpixel((i, j))) // 4
new.putpixel((i, j), originalColor)
qcolor = sum([img.getpixel((i + r, j - r)) for r in range(Pen_size)]) // Pen_size
wcolor = sum([img.getpixel((i - r, j + r)) for r in range(Pen_size)]) // Pen_size
# 通道----颜料
if abs(qcolor - wcolor) > Color_Diff:
originalColor -= (255 - img.getpixel((i, j))) // 4
new.putpixel((i, j), originalColor)
new.save(img_all)
i = os.system('mshta vbscript createobject("sapi.spvoice").speak("%s")(window.close)' % '您的图片转换好了')
os.system(img_all)
如果报错
可以直接安装
命令pip install Pillow即可
来源:https://blog.csdn.net/ahaotata/article/details/83830802
标签:python,彩色转化,素描
![](/images/zang.png)
![](/images/jiucuo.png)
猜你喜欢
Python 发送SMTP邮件的简单教程
2021-04-27 00:26:51
![](https://img.aspxhome.com/file/2023/1/67761_0s.png)
浅谈DataFrame和SparkSql取值误区
2021-03-21 22:04:18
![](https://img.aspxhome.com/file/2023/8/85208_0s.jpg)
python中的内置函数getattr()介绍及示例
2023-01-15 19:16:46
Python多线程与多进程相关知识总结
2021-07-06 21:37:16
![](https://img.aspxhome.com/file/2023/7/71447_0s.jpg)
Insert into与AddNew哪一个更好?
2009-10-28 18:30:00
交互设计实用指南系列(11)—减少记忆负担
2010-03-29 13:12:00
![](https://img.aspxhome.com/file/UploadPic/20103/29/t1za0vxjlexxxxxxxx-569-268-29s.jpg)
网页效果图设计之色彩索引
2008-03-23 13:53:00
![](https://img.aspxhome.com/file/UploadPic/up/2008032314313926.gif)
JavaScript定时器实现的原理分析
2023-08-23 10:24:16
![](https://img.aspxhome.com/file/2023/4/56094_0s.jpg)
Python + selenium自动化环境搭建的完整步骤
2023-11-19 12:42:57
![](https://img.aspxhome.com/file/2023/7/65987_0s.png)
php 使用 __call实现重载功能示例
2023-07-13 20:10:28
ASP常见错误详解及解决方案小结 推荐第1/2页
2011-02-24 11:19:00
Python基于域相关实现图像增强的方法教程
2023-08-24 15:30:22
![](https://img.aspxhome.com/file/2023/8/70218_0s.png)
复习Python中的字符串知识点
2022-09-13 07:32:49
如何使用Python在2秒内评估国际象棋位置详解
2023-08-10 14:26:46
![](https://img.aspxhome.com/file/2023/4/61754_0s.jpg)
MySQL错误中文参照列表
2010-09-30 14:41:00
Update 语句
2009-06-22 12:52:00
PyCharm使用最多也最常用默认快捷键分享
2023-05-23 20:54:55
![](https://img.aspxhome.com/file/2023/9/81579_0s.png)
SQL Server asp.net 数据提供程序连接池
2009-09-18 08:18:00
php中关于普通表单多文件上传的处理方法
2023-11-14 20:21:21
解决python虚拟环境切换无效的问题
2023-02-01 14:37:50
![](https://img.aspxhome.com/file/2023/0/77860_0s.jpg)