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获得时间的实例说明
Mar 25 Python
python双向链表实现实例代码
Nov 21 Python
python中使用urllib2伪造HTTP报头的2个方法
Jul 07 Python
python中print的不换行即时输出的快速解决方法
Jul 20 Python
Python爬取网页中的图片(搜狗图片)详解
Mar 23 Python
Python实现脚本锁功能(同时只能执行一个脚本)
May 10 Python
Pycharm技巧之代码跳转该如何回退
Jul 16 Python
Python进阶之递归函数的用法及其示例
Jan 31 Python
python3应用windows api对后台程序窗口及桌面截图并保存的方法
Aug 27 Python
Python嵌入C/C++进行开发详解
Jun 09 Python
python输出结果刷新及进度条的实现操作
Jul 13 Python
用pushplus+python监控亚马逊到货动态推送微信
Jan 29 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
基于mysql的论坛(1)
2006/10/09 PHP
请php正则走开
2008/03/15 PHP
php调用C代码的实现方法
2014/03/11 PHP
PHP中使用php://input处理相同name值的表单数据
2015/02/03 PHP
php自定义类fsocket模拟post或get请求的方法
2015/07/31 PHP
Zend Framework教程之资源(Resources)用法实例详解
2016/03/14 PHP
Laravel框架实现即点即改功能的方法分析
2019/10/31 PHP
js 浮动层菜单收藏
2009/01/16 Javascript
返回页面顶部top按钮通过锚点实现(自写)
2013/08/30 Javascript
Javascript快速排序算法详解
2014/12/03 Javascript
js中对函数设置默认参数值的3种方法
2015/10/23 Javascript
jquery实现倒计时功能
2015/12/28 Javascript
JavaScript构建自己的对象示例
2016/11/29 Javascript
Vue数据驱动模拟实现3
2017/01/11 Javascript
react-router实现跳转传值的方法示例
2017/05/27 Javascript
微信小程序学习笔记之跳转页面、传递参数获得数据操作图文详解
2019/03/28 Javascript
JS中的防抖与节流及作用详解
2019/04/01 Javascript
浅谈VUE防抖与节流的最佳解决方案(函数式组件)
2019/05/22 Javascript
node.js中stream流中可读流和可写流的实现与使用方法实例分析
2020/02/13 Javascript
js 闭包深入理解与实例分析
2020/03/19 Javascript
[50:24]VGJ.S vs Pain 2018国际邀请赛小组赛BO2 第二场 8.17
2018/08/20 DOTA
[01:11:32]VG vs FNATIC 2019国际邀请赛小组赛 BO2 第二场 8.15
2019/08/17 DOTA
python 示例分享---逻辑推理编程解决八皇后
2014/07/20 Python
Python3访问并下载网页内容的方法
2015/07/28 Python
Python中字符串的修改及传参详解
2016/11/30 Python
TensorFlow实现随机训练和批量训练的方法
2018/04/28 Python
Python查找第n个子串的技巧分享
2018/06/27 Python
对Pandas MultiIndex(多重索引)详解
2018/11/16 Python
浅析Python 实现一个自动化翻译和替换的工具
2019/04/14 Python
Python实现的栈、队列、文件目录遍历操作示例
2019/05/06 Python
浅谈Html5移动端ios/Android兼容性总结
2018/06/01 HTML / CSS
LVMH旗下最大的奢侈品网站平台:24S
2020/05/24 全球购物
编写一个类体现构造,公有,私有方法,静态,私有变量
2013/08/10 面试题
企业宗旨标语
2014/06/10 职场文书
赵乐秦在党的群众路线教育实践活动总结大会上的讲话稿
2014/10/25 职场文书
通过feDisplacementMap和feImage实现水波特效
2022/04/24 HTML / CSS