python图片灰度化处理的几种方法


Posted in Python onJune 23, 2021

今天在学习的时候,发现scipy.misc中的imread提取图片的方法被弃用了。太生气了!

只好使用了matplotlib.pyplot中的imread了,可是当我发现他不能直接通过True来提取灰度图片时,我崩溃了

上网查了一下,了解了灰度化处理的几种方法:

首先先解释一下,彩色图片一般是由RGB组成,其实就是3个二维数组叠加而成。我们也就能看到一些彩色图片了。当R=G=B时,彩色图片就会变成一种灰度颜色,就是我们俗称的“黑白照片”。所以灰度颜色的图片其实就是一个二维数组。
灰度化处理总共有三种方法:最大值法、平均值法、加权平均法。
从字面意思我们也能看出,前两种的意思。但第三种中的加权平均中的权值从何而来?
它是一个固定值,分别是R:0.299、G:0.587、B:0.114。因为人眼对绿色的敏感度更高,对红色次之,蓝色最低,因此使用不能的权值可以得到更合理的灰度图像,所以经过多次的实验才推导出该数值。

首先康康原图

original = plt.imread('C:\\Users\\11140\\Pictures\\Saved Pictures\\abc.jpg')
print(original.shape)
# (640, 640, 3)
plt.imshow(original)
plt.show()

python图片灰度化处理的几种方法

最大值法:

original = original.max(axis=2)
print(original.shape)
# (640, 640)
plt.imshow(original,cmap='gray')
plt.show()

python图片灰度化处理的几种方法

平均值法:

original = original.mean(axis=2)
print(original.shape)
# (640, 640)
plt.imshow(original,cmap='gray')
plt.show()

python图片灰度化处理的几种方法

加权平均法

original = np.dot(original,[0.299,0.587,0.114])
print(original.shape)
# (640, 640)
plt.imshow(original,cmap='gray')
plt.show()

python图片灰度化处理的几种方法

这样看起来,第一张和第二张有很大的差别。第三张相比第二张,好像确实第三张看起来更舒服一点

到此这篇关于python图片灰度化处理的几种方法的文章就介绍到这了,更多相关python图片灰度化内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!

Python 相关文章推荐
Pyhton中防止SQL注入的方法
Feb 05 Python
如何处理Python3.4 使用pymssql 乱码问题
Jan 08 Python
举例讲解Python的lambda语句声明匿名函数的用法
Jul 01 Python
Window环境下Scrapy开发环境搭建
Nov 18 Python
对Python 除法负数取商的取整方式详解
Dec 12 Python
python儿童学游戏编程知识点总结
Jun 03 Python
Python如何爬取微信公众号文章和评论(基于 Fiddler 抓包分析)
Jun 28 Python
python3中替换python2中cmp函数的实现
Aug 20 Python
探秘TensorFlow 和 NumPy 的 Broadcasting 机制
Mar 13 Python
python实现批量转换图片为黑白
Jun 16 Python
利用python绘制中国地图(含省界、河流等)
Sep 21 Python
Python实现数据的序列化操作详解
Jul 07 Python
详解Python中的进程和线程
详解Go语言运用广度优先搜索走迷宫
常用的Python代码调试工具总结
Django+Celery实现定时任务的示例
Python django中如何使用restful框架
Python基础之变量的相关知识总结
Jun 23 #Python
浅谈Python数学建模之固定费用问题
You might like
在PHP中养成7个面向对象的好习惯
2010/01/28 PHP
thinkPHP框架实现的短信接口验证码功能示例
2018/06/20 PHP
Laravel框架实现的批量删除功能示例
2019/01/16 PHP
解决laravel-admin 自己新建页面里 js 需要刷新一次的问题
2019/10/03 PHP
js 字符串转化成数字的代码
2011/06/29 Javascript
基于jquery跨浏览器显示的file上传控件
2011/10/24 Javascript
javascript面向对象包装类Class封装类库剖析
2013/01/24 Javascript
jquery 无限级联菜单案例分享
2013/03/26 Javascript
jquery+html5制作超酷的圆盘时钟表
2015/04/14 Javascript
javascript中DOM复选框选择用法实例
2015/05/14 Javascript
jQuery实现判断滚动条到底部
2015/06/23 Javascript
基于JavaScript判断浏览器到底是关闭还是刷新(超准确)
2016/02/01 Javascript
详解闭包解决jQuery中AJAX的外部变量问题
2017/02/22 Javascript
使用layer弹窗,制作编辑User信息页面的方法
2019/09/27 Javascript
在vant 中使用cell组件 定义图标该图片和位置操作
2020/11/02 Javascript
Python实现的手机号归属地相关信息查询功能示例
2017/06/08 Python
解决Python正则表达式匹配反斜杠''\''问题
2019/07/17 Python
关于pytorch中网络loss传播和参数更新的理解
2019/08/20 Python
pygame实现俄罗斯方块游戏(基础篇1)
2019/10/29 Python
django从后台返回html代码的实例
2020/03/11 Python
Python如何实现爬取B站视频
2020/05/20 Python
浅析Python 抽象工厂模式的优缺点
2020/07/13 Python
保安自我鉴定范文
2013/12/08 职场文书
小学生获奖感言范文
2014/02/02 职场文书
博士毕业生自我鉴定范文
2014/04/13 职场文书
五四青年节优秀演讲稿范文
2014/05/28 职场文书
物流管理系毕业生求职信
2014/06/03 职场文书
美术兴趣小组活动总结
2014/07/07 职场文书
社区五一劳动节活动总结
2015/02/09 职场文书
学校2015年纠风工作总结
2015/05/15 职场文书
小学语文的各类谚语(70首)
2019/08/15 职场文书
Mac环境Nginx配置和访问本地静态资源的实现
2021/03/31 Servers
分享一些Java的常用工具
2021/06/11 Java/Android
Python快速实现一键抠图功能的全过程
2021/06/29 Python
Oracle中日期的使用方法实例
2022/07/07 Oracle
python 镜像环境搭建总结
2022/09/23 Python