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删除列表内容
Aug 04 Python
关于Python元祖,列表,字典,集合的比较
Jan 06 Python
Python读取sqlite数据库文件的方法分析
Aug 07 Python
Python数据结构与算法之图结构(Graph)实例分析
Sep 05 Python
Python MySQLdb 使用utf-8 编码插入中文数据问题
Mar 13 Python
python实现对任意大小图片均匀切割的示例
Dec 05 Python
Django组件content-type使用方法详解
Jul 19 Python
Java爬虫技术框架之Heritrix框架详解
Jul 22 Python
Python3爬虫mitmproxy的安装步骤
Jul 29 Python
使用py-spy解决scrapy卡死的问题方法
Sep 29 Python
利用pipenv和pyenv管理多个相互独立的Python虚拟开发环境
Nov 01 Python
python subprocess pipe 实时输出日志的操作
Dec 05 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面向对象全攻略 (十二) 抽象方法和抽象类
2009/09/30 PHP
ThinkPHP中调用PHPExcel的实现代码
2017/04/08 PHP
浅谈Laravel模板实体转义带来的坑
2019/10/22 PHP
Laravel框架源码解析之模型Model原理与用法解析
2020/05/14 PHP
JS实多级联动下拉菜单类,简单实现省市区联动菜单!
2007/05/03 Javascript
关于__defineGetter__ 和__defineSetter__的说明
2007/05/12 Javascript
在chrome中window.onload事件的一些问题
2010/03/01 Javascript
jquery中.add()的使用分析
2013/04/26 Javascript
JS中数组Array的用法示例介绍
2014/02/20 Javascript
基于jQuery实现在线选座之高铁版
2015/08/24 Javascript
Jquery uploadify上传插件使用详解
2016/01/13 Javascript
three.js实现围绕某物体旋转
2017/01/25 Javascript
jQuery+ThinkPHP+Ajax实现即时消息提醒功能实例代码
2017/03/21 jQuery
vue.js移动端tab组件的封装实践实例
2017/06/30 Javascript
Vue的elementUI实现自定义主题方法
2018/02/23 Javascript
vue使用ElementUI时导航栏默认展开功能的实现
2018/07/04 Javascript
JS学习笔记之原型链和利用原型实现继承详解
2019/05/29 Javascript
小程序外卖订单界面的示例代码
2019/12/30 Javascript
在Echarts图中给坐标轴加一个标识线markLine
2020/07/20 Javascript
[55:35]VGJ.S vs Mski Supermajor小组赛C组 BO3 第二场 6.3
2018/06/04 DOTA
状态机的概念和在Python下使用状态机的教程
2015/04/11 Python
在Python中使用判断语句和循环的教程
2015/04/25 Python
Python中Django框架下的staticfiles使用简介
2015/05/30 Python
利用 Monkey 命令操作屏幕快速滑动
2016/12/07 Python
Python编程实现生成特定范围内不重复多个随机数的2种方法
2017/04/14 Python
opencv python 傅里叶变换的使用
2018/07/21 Python
python使用socket 先读取长度,在读取报文内容示例
2019/09/26 Python
Python Selenium 设置元素等待的三种方式
2020/03/18 Python
如何在django中实现分页功能
2020/04/22 Python
Python批量获取并保存手机号归属地和运营商的示例
2020/10/09 Python
运行Python编写的程序方法实例
2020/10/21 Python
python 检测图片是否有马赛克
2020/12/01 Python
浅谈基于HTML5的在线视频播放方案
2016/02/18 HTML / CSS
蒂芙尼澳大利亚官方网站:Tiffany&Co. Australia
2017/08/27 全球购物
用C或者C++语言实现SOCKET通信
2015/02/24 面试题
护士思想汇报
2014/01/12 职场文书