python实现图片彩色转化为素描


Posted in Python onJanuary 15, 2019

本文实例为大家分享了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)

如果报错

python实现图片彩色转化为素描

可以直接安装
命令pip install Pillow即可

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
python正则匹配查询港澳通行证办理进度示例分享
Dec 27 Python
Python 字符串操作方法大全
Mar 11 Python
Python第三方库xlrd/xlwt的安装与读写Excel表格
Jan 21 Python
python破解zip加密文件的方法
May 31 Python
numpy的文件存储.npy .npz 文件详解
Jul 09 Python
使用python进行波形及频谱绘制的方法
Jun 17 Python
Pandas_cum累积计算和rolling滚动计算的用法详解
Jul 04 Python
python GUI库图形界面开发之PyQt5动态(可拖动控件大小)布局控件QSplitter详细使用方法与实例
Mar 06 Python
python3.8.1+selenium实现登录滑块验证功能
May 22 Python
解决keras使用cov1D函数的输入问题
Jun 29 Python
pycharm最新激活码有效期至2100年(亲测可用)
Feb 05 Python
使用tensorflow 实现反向传播求导
May 26 Python
带你认识Django
Jan 15 #Python
Python数据可视化库seaborn的使用总结
Jan 15 #Python
使用Django连接Mysql数据库步骤
Jan 15 #Python
Django框架模板介绍
Jan 15 #Python
python使用PIL实现多张图片垂直合并
Jan 15 #Python
python实现多张图片拼接成大图
Jan 15 #Python
解决新版Pycharm中Matplotlib图像不在弹出独立的显示窗口问题
Jan 15 #Python
You might like
php 用checkbox一次性删除多条记录的方法
2010/02/23 PHP
利用php绘制饼状图的实现代码
2013/06/07 PHP
VIM中设置php自动缩进为4个空格的方法详解
2013/06/14 PHP
PHP字符串中特殊符号的过滤方法介绍
2014/02/18 PHP
phpmailer在服务器上不能正常发送邮件的解决办法
2014/07/08 PHP
Laravel 5 框架入门(二)构建 Pages 的管理功能
2015/04/09 PHP
浅谈PHP中的那些魔术常量
2020/12/02 PHP
用JavaScript 处理 URL 的两个函数代码
2007/08/13 Javascript
js禁止页面复制功能禁用页面右键菜单示例代码
2013/08/29 Javascript
常用js字符串判断方法整理
2013/10/18 Javascript
jQuery在页面加载时动态修改图片尺寸的方法
2015/03/20 Javascript
javascript创建函数的20种方式汇总
2015/06/23 Javascript
JavaScript中this详解
2015/09/01 Javascript
跟我学习javascript的异步脚本加载
2015/11/20 Javascript
js动态获取子复选项并设计全选及提交的实现方法
2016/06/24 Javascript
很酷的星级评分系统原生JS实现
2016/08/25 Javascript
js实现百度搜索提示框
2017/02/05 Javascript
js自定义Tab选项卡效果
2017/06/05 Javascript
解决Vue-cli npm run build生产环境打包,本地不能打开的问题
2018/09/20 Javascript
详解使用element-ui table组件的筛选功能的一个小坑
2018/11/02 Javascript
详解django模板与vue.js冲突问题
2019/07/07 Javascript
微信sdk实现禁止微信分享(使用原生php实现)
2019/11/15 Javascript
nuxt静态部署打包相对路径操作
2020/11/06 Javascript
[51:10]VP vs VGJ.S 2018国际邀请赛小组赛BO2 第二场 8.19
2018/08/21 DOTA
Python unittest单元测试框架总结
2018/09/08 Python
python实现从本地摄像头和网络摄像头截取图片功能
2019/07/11 Python
Django中自定义模型管理器(Manager)及方法
2019/09/23 Python
Python多进程编程multiprocessing代码实例
2020/03/12 Python
django 解决model中类写不到数据库中,数据库无此字段的问题
2020/05/20 Python
您的健身减肥和健康饮食专家:vitafy
2017/06/06 全球购物
Hotels.com香港酒店网:你的自由行酒店订房专家
2018/01/22 全球购物
一套Delphi的笔试题一
2016/02/14 面试题
2015年小学美术工作总结
2015/05/25 职场文书
2016年中秋节慰问信
2015/12/01 职场文书
护士心得体会范文
2016/01/25 职场文书
Java实现字符串转为驼峰格式的方法详解
2022/07/07 Java/Android