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 Trie树实现字典排序
Mar 28 Python
简单介绍Python的轻便web框架Bottle
Apr 08 Python
Django Highcharts制作图表
Aug 27 Python
Python运行不显示DOS窗口的解决方法
Oct 22 Python
python 实现分页显示从es中获取的数据方法
Dec 26 Python
python射线法判断一个点在图形区域内外
Jun 28 Python
关于Python3 lambda函数的深入浅出
Nov 27 Python
python随机模块random使用方法详解
Feb 14 Python
Python中内建模块collections如何使用
May 27 Python
PyTorch实现重写/改写Dataset并载入Dataloader
Jul 14 Python
Python自动化之UnitTest框架实战记录
Sep 08 Python
python正则表达式re.match()匹配多个字符方法的实现
Jan 27 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/10/23 PHP
php inc文件使用的风险和注意事项
2013/11/12 PHP
php递归创建目录的方法
2015/02/02 PHP
深入剖析PHP中printf()函数格式化使用
2016/05/23 PHP
document对象execCommand的command参数介绍
2006/08/01 Javascript
2010年最佳jQuery插件整理
2010/12/06 Javascript
33个优秀的jQuery 教程分享(幻灯片、动画菜单)
2011/07/08 Javascript
jquery 插件学习(二)
2012/08/06 Javascript
设置jsf的选择框h:selectOneMenu为不可编辑状态的方法
2014/01/07 Javascript
javascript实现根据时间段显示问候语的方法
2015/06/18 Javascript
JS实现随页面滚动显示/隐藏窗口固定位置元素
2016/02/26 Javascript
使用CSS+JavaScript或纯js实现半透明遮罩效果的实例分享
2016/05/09 Javascript
javascript中Date对象应用之简易日历实现
2016/07/12 Javascript
AngularJS 模型详细介绍及实例代码
2016/07/27 Javascript
微信小程序通过api接口将json数据展现到小程序示例
2017/01/20 Javascript
vuex页面刷新后数据丢失的方法
2019/01/17 Javascript
js使用文档就绪函数动态改变页面内容示例【innerHTML、innerText】
2019/11/07 Javascript
如何在Vue.JS中使用图标组件
2020/08/04 Javascript
Vue使用路由钩子拦截器beforeEach和afterEach监听路由
2020/11/16 Javascript
详解Vue的七种传值方式
2021/02/08 Vue.js
简单介绍Python中的try和finally和with方法
2015/05/05 Python
windows下python和pip安装教程
2018/05/25 Python
Python运维之获取系统CPU信息的实现方法
2018/06/11 Python
详解python3中tkinter知识点
2018/06/21 Python
基于Django的乐观锁与悲观锁解决订单并发问题详解
2019/07/31 Python
使用python+whoosh实现全文检索
2019/12/09 Python
Python 没有main函数的原因
2020/07/10 Python
详解Python3.8+PyQt5+pyqt5-tools+Pycharm配置详细教程
2020/11/02 Python
Clarks其乐鞋荷兰官网:Clarks荷兰
2019/07/05 全球购物
环保专业大学生职业规划设计
2014/01/10 职场文书
2014党员四风对照检查材料思想汇报
2014/09/17 职场文书
后进基层党组织整改方案
2014/10/25 职场文书
党员干部学习三严三实心得体会
2016/01/05 职场文书
纯CSS实现hover图片pop-out弹出效果的实例代码
2021/04/16 HTML / CSS
如何利用opencv判断两张图片是否相同详解
2021/07/07 Python
配置nginx负载均衡
2022/05/06 Servers