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 获取本机ip地址的两个方法
Feb 25 Python
itchat接口使用示例
Oct 23 Python
Python 判断是否为质数或素数的实例
Oct 30 Python
python实现感知器
Dec 19 Python
Python统计纯文本文件中英文单词出现个数的方法总结【测试可用】
Jul 25 Python
Python爬虫PyQuery库基本用法入门教程
Aug 04 Python
Django Rest framework频率原理与限制
Jul 26 Python
python网络爬虫 CrawlSpider使用详解
Sep 27 Python
详解Python中的format格式化函数的使用方法
Nov 20 Python
基于python+selenium的二次封装的实现
Jan 06 Python
解决tensorflow 释放图,删除变量问题
Jun 23 Python
python控制台打印log输出重复的解决方法
May 14 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
JpGraph php柱状图使用介绍
2011/08/23 PHP
PHP 无限分类三种方式 非函数的递归调用!
2011/08/26 PHP
深入探讨:Nginx 502 Bad Gateway错误的解决方法
2013/06/03 PHP
php fsockopen伪造post与get方法的详解
2013/06/14 PHP
PHP 文件编程综合案例-文件上传的实现
2013/07/03 PHP
JavaScript ECMA-262-3 深入解析.第三章.this
2011/09/28 Javascript
js bind 函数 使用闭包保存执行上下文
2011/12/26 Javascript
javascript实现可拖动变色并关闭层窗口实例
2015/05/15 Javascript
基于jquery实现轮播特效
2016/04/22 Javascript
JavaScript中如何使用cookie实现记住密码功能及cookie相关函数介绍
2016/11/10 Javascript
基于复选框demo(分享)
2017/09/27 Javascript
vue 动态改变静态图片以及请求网络图片的实现方法
2018/02/07 Javascript
JavaScript前端页面搜索功能案例【基于jQuery】
2019/07/10 jQuery
[01:00:35]2018DOTA2亚洲邀请赛3月30日B组 EffcetVSMineski
2018/03/31 DOTA
[46:23]完美世界DOTA2联赛PWL S2 FTD vs Magma 第一场 11.20
2020/11/23 DOTA
将Python中的数据存储到系统本地的简单方法
2015/04/11 Python
Python import与from import使用及区别介绍
2018/09/06 Python
Flask使用Pyecharts在单个页面展示多个图表的方法
2019/08/05 Python
Python爬虫爬取Bilibili弹幕过程解析
2019/10/10 Python
python GUI库图形界面开发之PyQt5布局控件QVBoxLayout详细使用方法与实例
2020/03/06 Python
python使用hdfs3模块对hdfs进行操作详解
2020/06/06 Python
python爬虫中url管理器去重操作实例
2020/11/30 Python
使用CSS3创建动态菜单效果
2015/07/10 HTML / CSS
详解canvas绘图时遇到的跨域问题
2018/03/22 HTML / CSS
Otel.com:折扣酒店预订
2017/08/24 全球购物
英国领先的鞋类零售商:Shoe Zone
2018/12/13 全球购物
Clarks鞋澳大利亚官方网站:Clarks Australia
2019/12/25 全球购物
文秘大学生求职信
2014/02/25 职场文书
cf收人广告词
2014/03/14 职场文书
社会实践的活动方案
2014/08/22 职场文书
企业法人代表证明书
2014/09/27 职场文书
学校领导班子成员查摆问题及整改措施
2014/10/28 职场文书
幼儿园大班教师个人工作总结
2015/02/05 职场文书
好段摘抄大全(48句)
2019/08/08 职场文书
MySQL系列之七 MySQL存储引擎
2021/07/02 MySQL
浅谈MySQL中的六种日志
2022/03/23 MySQL