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 Web框架Flask中使用百度云存储BCS实例
Feb 08 Python
python求解数组中两个字符串的最小距离
Sep 27 Python
Python实现高斯函数的三维显示方法
Dec 29 Python
python导入模块交叉引用的方法
Jan 19 Python
使用Python和Scribus创建一个RGB立方体的方法
Jul 17 Python
解决Python设置函数调用超时,进程卡住的问题
Aug 08 Python
python实现对服务器脚本敏感信息的加密解密功能
Aug 13 Python
安装python3.7编译器后如何正确安装opnecv的方法详解
Jun 16 Python
Python同时迭代多个序列的方法
Jul 28 Python
Pycharm 2020.1 版配置优化的详细教程
Aug 07 Python
Python爬虫使用bs4方法实现数据解析
Aug 25 Python
Python Pygame实战之塔防游戏的实现
Mar 17 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
Oracle 常见问题解答
2006/10/09 PHP
同台服务器使用缓存APC效率高于Memcached的演示代码
2010/02/16 PHP
《PHP编程最快明白》第六讲:Mysql数据库操作
2010/11/01 PHP
JavaScript阻止事件冒泡示例分享
2014/12/28 Javascript
浅谈Javascript 数组与字典
2015/01/29 Javascript
JQuery操作textarea,input,select,checkbox方法
2015/09/02 Javascript
javascript弹性运动效果简单实现方法
2016/01/08 Javascript
Fullpage.js固定导航栏-实现定位导航栏
2016/03/17 Javascript
Boostrap基础教程之JavaScript插件篇
2016/09/08 Javascript
如何实现json数据可视化详解
2016/11/24 Javascript
利用vue写todolist单页应用
2016/12/15 Javascript
vue 实现的树形菜的实例代码
2018/03/19 Javascript
简单介绍react redux的中间件的使用
2018/04/06 Javascript
使用proxy实现一个更优雅的vue【推荐】
2018/06/19 Javascript
uni-app 自定义底部导航栏的实现
2020/12/11 Javascript
python单元测试unittest实例详解
2015/05/11 Python
详解Django缓存处理中Vary头部的使用
2015/07/24 Python
python中使用正则表达式的后向搜索肯定模式(推荐)
2017/11/11 Python
python列表的增删改查实例代码
2018/01/30 Python
python实现windows壁纸定期更换功能
2019/01/21 Python
详解Python3中ceil()函数用法
2019/02/19 Python
python ChainMap的使用和说明详解
2019/06/11 Python
redis数据库及与python交互用法简单示例
2019/11/01 Python
linux 下selenium chrome使用详解
2020/04/02 Python
scrapy头部修改的方法详解
2020/12/06 Python
万豪国际住宅与别墅集团:Homes & Villas by Marriott International
2020/10/08 全球购物
思想专业自荐信范文
2013/12/25 职场文书
重阳节登山活动方案
2014/02/03 职场文书
关于爱国的演讲稿
2014/05/07 职场文书
会计演讲稿范文
2014/05/23 职场文书
2014年入党积极分子党校培训心得体会
2014/07/08 职场文书
2015年世界环境日活动方案
2015/05/05 职场文书
2016年小学“感恩教师”主题队日活动总结
2016/04/01 职场文书
迎客户欢迎词三篇
2019/09/27 职场文书
python实现简单的名片管理系统
2021/04/26 Python
pandas中pd.groupby()的用法详解
2022/06/16 Python