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中的日期时间处理详解
Nov 17 Python
python中的break、continue、exit()、pass全面解析
Aug 05 Python
Django学习教程之静态文件的调用详解
May 08 Python
python 自动去除空行的实例
Jul 24 Python
Python使用装饰器模拟用户登陆验证功能示例
Aug 24 Python
对python中UDP,socket的使用详解
Aug 22 Python
python selenium实现发送带附件的邮件代码实例
Dec 10 Python
tensorflow之自定义神经网络层实例
Feb 07 Python
python集成开发环境配置(pycharm)
Feb 14 Python
python使用梯度下降和牛顿法寻找Rosenbrock函数最小值实例
Apr 02 Python
Python分析微信好友性别比例和省份城市分布比例的方法示例【基于itchat模块】
May 29 Python
pytorch中的model=model.to(device)使用说明
May 24 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中英混合字符串截取函数代码
2011/07/17 PHP
ubuntu下编译安装xcache for php5.3 的具体操作步骤
2013/06/18 PHP
is_uploaded_file函数引发的不能上传文件问题
2013/10/29 PHP
PHP实现过滤掉非汉字字符只保留中文字符
2015/06/04 PHP
浅析Yii2集成富文本编辑器redactor实例教程
2016/04/25 PHP
PHP 5.6.11中CURL模块问题的解决方法
2016/08/08 PHP
JavaScript声明变量时为什么要加var关键字
2014/09/29 Javascript
使用jquery清空、复位整个输入域
2015/04/02 Javascript
基于jquery实现可定制的web在线富文本编辑器附源码下载
2015/11/17 Javascript
javascript实现uploadify上传格式以及个数限制
2015/11/23 Javascript
jQuery检测滚动条是否到达底部
2015/12/15 Javascript
WordPress 单页面上一页下一页的实现方法【附代码】
2016/03/10 Javascript
微信小程序 欢迎页面的制作(源码下载)
2017/01/09 Javascript
Mac下使用charles遇到的问题以及解决办法
2017/01/10 Javascript
css和js实现弹出登录居中界面完整代码
2017/11/26 Javascript
vue2 全局变量的设置方法
2018/03/09 Javascript
如何从零开始手写Koa2框架
2019/03/22 Javascript
javascript-hashchange事件和历史状态管理实例分析
2020/04/18 Javascript
Vue+scss白天和夜间模式切换功能的实现方法
2021/01/05 Vue.js
pytyon 带有重复的全排列
2013/08/13 Python
python实现socket端口重定向示例
2014/02/10 Python
python获取mp3文件信息的方法
2015/06/15 Python
python实现列表中由数值查到索引的方法
2018/06/27 Python
IntelliJ IDEA安装运行python插件方法
2018/12/10 Python
对python 生成拼接xml报文的示例详解
2018/12/28 Python
简单了解python filter、map、reduce的区别
2020/01/14 Python
入党积极分子思想汇报范文
2014/01/05 职场文书
文字自荐书范文
2014/02/10 职场文书
争当四好少年演讲稿
2014/09/13 职场文书
农业项目合作意向书
2015/05/08 职场文书
公司职员入党自传书
2015/06/26 职场文书
呼啸山庄读书笔记
2015/06/29 职场文书
安全生产奖惩制度
2015/08/06 职场文书
《一面五星红旗》教学反思
2016/02/23 职场文书
大学学生会主席竞选稿怎么写?
2019/08/19 职场文书
php将xml转化对象的实例详解
2021/11/17 PHP