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交换变量
Sep 06 Python
python base64 decode incorrect padding错误解决方法
Jan 08 Python
Python解析命令行读取参数--argparse模块使用方法
Jan 23 Python
python计算列表内各元素的个数实例
Jun 29 Python
Python OS模块实例详解
Apr 15 Python
Pytorch反向求导更新网络参数的方法
Aug 17 Python
python sorted方法和列表使用解析
Nov 18 Python
python3 requests库实现多图片爬取教程
Dec 18 Python
Django ForeignKey与数据库的FOREIGN KEY约束详解
May 20 Python
Python flask路由间传递变量实例详解
Jun 03 Python
详解Python中的Lock和Rlock
Jan 26 Python
OpenCV绘制圆端矩形的示例代码
Aug 30 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
非洲第一个咖啡超凡杯大赛承办国—卢旺达的咖啡怎么样
2021/03/03 咖啡文化
smarty巧妙处理iframe中内容页的代码
2012/03/07 PHP
PHP的Yii框架中行为的定义与绑定方法讲解
2016/03/18 PHP
JavaScript模版引擎的基本实现方法浅析
2016/02/15 Javascript
JavaScript中的时间处理小结
2016/02/24 Javascript
Kindeditor在线文本编辑器如何过滤HTML
2016/04/14 Javascript
js精准的倒计时函数分享
2016/06/29 Javascript
利用Javascript实现BMI计算器
2016/08/16 Javascript
简单实现nodejs上传功能
2017/01/14 NodeJs
jquery版轮播图效果和extend扩展
2017/07/18 jQuery
JavaScript实现多重继承的方法分析
2018/01/09 Javascript
nodejs爬虫初试superagent和cheerio
2018/03/05 NodeJs
vue实例中data使用return包裹的方法
2018/08/27 Javascript
javascript实现前端成语点击验证优化
2020/06/24 Javascript
微信小程序 接入腾讯地图的两种写法
2021/01/12 Javascript
[02:28]DOTA2英雄基础教程 狼人
2013/12/23 DOTA
Python linecache.getline()读取文件中特定一行的脚本
2008/09/06 Python
Python自定义函数的创建、调用和函数的参数详解
2014/03/11 Python
Python计算三角函数之asin()方法的使用
2015/05/15 Python
用Python写一段用户登录的程序代码
2018/04/22 Python
python实现机器学习之多元线性回归
2018/09/06 Python
Pycharm新建模板默认添加个人信息的实例
2019/07/15 Python
关于tf.TFRecordReader()函数的用法解析
2020/02/17 Python
python实现梯度下降和逻辑回归
2020/03/24 Python
python中_del_还原数据的方法
2020/12/09 Python
员工培训心得体会
2013/12/30 职场文书
高二生物教学反思
2014/01/27 职场文书
禁烟标语大全
2014/06/11 职场文书
年度优秀员工获奖感言
2014/08/15 职场文书
优秀团员事迹材料1500字
2014/08/31 职场文书
开幕式邀请函
2015/01/31 职场文书
学校办公室主任岗位职责
2015/04/01 职场文书
会议营销主持词
2015/07/03 职场文书
入队仪式主持词
2015/07/04 职场文书
班主任班级管理心得体会
2016/01/07 职场文书
军训心得体会范文(2016最新篇)
2016/01/11 职场文书