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 错误和异常小结
Oct 09 Python
Python批量重命名同一文件夹下文件的方法
May 25 Python
python使用电子邮件模块smtplib的方法
Aug 28 Python
Python Nose框架编写测试用例方法
Oct 26 Python
python实现冒泡排序算法的两种方法
Mar 10 Python
Python Requests模拟登录实现图书馆座位自动预约
Apr 27 Python
Python 编程速成(推荐)
Apr 15 Python
Django集成CAS单点登录的方法示例
Jun 10 Python
python使用 __init__初始化操作简单示例
Sep 26 Python
python GUI库图形界面开发之PyQt5 UI主线程与耗时线程分离详细方法实例
Feb 26 Python
python实现字符串和数字拼接
Mar 02 Python
Selenium 滚动页面至元素可见的方法
Mar 18 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
一个简洁的多级别论坛
2006/10/09 PHP
使用php重新实现PHP脚本引擎内置函数
2007/03/06 PHP
thinkphp3.x中session方法的用法分析
2016/05/20 PHP
PHP实现常用排序算法的方法
2020/02/05 PHP
jQuery lazyload 的重复加载错误以及修复方法
2010/11/19 Javascript
jQuery实现页面滚动时层智能浮动定位实例探讨
2013/03/29 Javascript
js特效,页面下雪的小例子
2013/06/17 Javascript
jquery弹出层类代码分享
2013/12/27 Javascript
js判断当前页面用什么浏览器打开的方法
2016/01/06 Javascript
JQuery DIV 动态隐藏和显示的方法
2016/06/23 Javascript
jQuery深拷贝Json对象简单示例
2016/07/06 Javascript
js enter键激发事件实例代码
2016/08/17 Javascript
javascript计算渐变颜色的实例
2017/09/22 Javascript
JS实现去除数组中重复json的方法示例
2017/12/21 Javascript
如何从零开始利用js手写一个Promise库详解
2018/04/19 Javascript
Vue实现左右菜单联动实现代码
2018/08/12 Javascript
函数式编程入门实践(一)
2019/04/20 Javascript
vue 解决异步数据更新问题
2019/10/29 Javascript
云服务器部署Node.js项目的方法步骤(小白系列)
2020/03/23 Javascript
Python标准库与第三方库详解
2014/07/22 Python
Python找出9个连续的空闲端口
2016/02/01 Python
opencv resize图片为正方形尺寸的实现方法
2019/12/26 Python
深度学习入门之Pytorch 数据增强的实现
2020/02/26 Python
总结Pyinstaller的坑及终极解决方法(小结)
2020/09/21 Python
英国和爱尔兰最大的地毯零售商:Kukoon
2018/12/17 全球购物
女孩每月服装订阅盒:kidpik
2019/04/17 全球购物
您附近的水疗和健康场所:Spafinder(美国)
2019/07/05 全球购物
Nayomi官网:沙特阿拉伯王国睡衣和内衣品牌
2020/12/19 全球购物
师范大学毕业自我鉴定
2013/11/21 职场文书
高二美术教学反思
2014/01/14 职场文书
宣传工作经验材料
2014/06/02 职场文书
分公司总经理岗位职责
2014/08/03 职场文书
助残日活动总结
2014/08/27 职场文书
2014镇副书记群众路线专题民主生活会思想汇报
2014/09/23 职场文书
干部作风建设心得体会
2014/10/22 职场文书
vue中利用mqtt服务端实现即时通讯的步骤记录
2021/07/01 Vue.js