python实现彩色图转换成灰度图


Posted in Python onJanuary 15, 2019

本文实例为大家分享了python实现彩色图转换成灰度图的具体代码,供大家参考,具体内容如下

from PIL import Image
import os
 
# 图像组成:红绿蓝 (RGB)三原色组成 亮度(255,255,255)
image = "Annie1.jpg"
img = Image.open(image)
img_all = "素描" + image
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实现彩色图转换成灰度图

转换后

python实现彩色图转换成灰度图

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
使用Python的Zato发送AMQP消息的教程
Apr 16 Python
利用Python学习RabbitMQ消息队列
Nov 30 Python
Python使用sftp实现上传和下载功能(实例代码)
Mar 14 Python
利用Python循环(包括while&for)各种打印九九乘法表的实例
Nov 06 Python
Python中摘要算法MD5,SHA1简介及应用实例代码
Jan 09 Python
20个常用Python运维库和模块
Feb 12 Python
python中利用h5py模块读取h5文件中的主键方法
Jun 05 Python
matplotlib实现区域颜色填充
Mar 18 Python
Python递归函数 二分查找算法实现解析
Aug 12 Python
Python爬虫 urllib2的使用方法详解
Sep 23 Python
Python多线程threading join和守护线程setDeamon原理详解
Mar 18 Python
简单了解django处理跨域请求最佳解决方案
Mar 25 Python
Python中new方法的详解
Jan 15 #Python
Python之循环结构
Jan 15 #Python
python实现图片彩色转化为素描
Jan 15 #Python
带你认识Django
Jan 15 #Python
Python数据可视化库seaborn的使用总结
Jan 15 #Python
使用Django连接Mysql数据库步骤
Jan 15 #Python
Django框架模板介绍
Jan 15 #Python
You might like
php tp验证表单与自动填充函数代码
2012/02/22 PHP
php自定义函数截取汉字长度
2014/05/15 PHP
php中用memcached实现页面防刷新功能
2014/08/19 PHP
Extjs学习过程中新手容易碰到的低级错误积累
2010/02/11 Javascript
Jquery下判断Id是否存在的代码
2011/01/06 Javascript
Js中setTimeout()和setInterval() 何时被调用执行的用法
2013/04/12 Javascript
js简单实现让文本框内容逐个字的显示出来
2013/10/22 Javascript
Jquery在指定DIV加载HTML示例代码
2014/02/17 Javascript
使用js画图之饼图
2015/01/12 Javascript
js数组的五种迭代方法及两种归并方法(推荐)
2016/06/14 Javascript
URL的参数中有加号传值变为空格的问题(URL特殊字符)
2016/11/04 Javascript
JS中事件冒泡和事件捕获介绍
2016/12/13 Javascript
JS获取一个表单字段中多条数据并转化为json格式
2017/10/17 Javascript
仿京东快报向上滚动的实例
2017/12/13 Javascript
Vue实现点击后文字变色切换方法
2018/02/11 Javascript
关于node-bindings无法在Electron中使用的解决办法
2018/12/18 Javascript
生产制造追溯系统之在线打印功能
2019/06/03 Javascript
基于Nuxt.js项目的服务端性能优化与错误检测(容错处理)
2019/10/23 Javascript
JQuery中DOM节点的操作与访问方法实例分析
2019/12/23 jQuery
vue.js this.$router.push获取不到params参数问题
2020/03/03 Javascript
[06:45]2018DOTA2亚洲邀请赛 4.5 SOLO赛 Sccc vs Maybe
2018/04/06 DOTA
在Ubuntu系统下安装使用Python的GUI工具wxPython
2016/02/18 Python
Selenium chrome配置代理Python版的方法
2018/11/29 Python
详解安装mitmproxy以及遇到的坑和简单用法
2019/01/21 Python
eclipse创建python项目步骤详解
2019/05/10 Python
解决Python二维数组赋值问题
2019/11/28 Python
python实现扫雷游戏的示例
2020/10/20 Python
HTML5新特性之语义化标签
2017/10/31 HTML / CSS
美国知名的百货清仓店:Neiman Marcus Last Call
2016/08/03 全球购物
加拿大国民体育购物网站:National Sports
2018/11/04 全球购物
Set里的元素是不能重复的,那么用什么方法来区分重复与否呢? 是用==还是equals()? 它们有何区别?
2014/07/27 面试题
消防安全宣传口号
2014/06/10 职场文书
个人自荐书怎么写
2015/03/26 职场文书
七一慰问简报
2015/07/20 职场文书
gtx1650怎么样 gtx1650显卡相当于什么级别
2022/04/08 数码科技
Python保存并浏览用户的历史记录
2022/04/29 Python