栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

2021-10-03

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

2021-10-03

使用python画出某图片对应灰度图的灰度直方图
  • 计算灰度图的累计直方图
    • 选择图片
    • 将图片变为灰度图
    • 获取灰度图的像素值
    • 统计灰度值出现的次数,转化为直方图

计算灰度图的累计直方图 选择图片

建议选择尺寸大小为500以内的图片,避免程序运算量过大,等待时间过长。
插入图片时,可以在图片属性里复制出图片的位置,通过Image包来导入图片。

小编这里图片格式为jfif,可以根据自己的图片格式修改。“r”是起防止字符转义的作用,如果路径中出现“t”的话,不加"r”,“t”就会被转义,而加了“r”之后“t”就能保留原有的样子。

将图片变为灰度图

方法一:可以调用一个包,可以直接输出灰度图像。

方法二:种公式法:gray=0.2989×r + 0.5870×g + 0.1140×b。
任何颜色都有红、绿、蓝三原色组成,假如原来某点的颜色为RGB(R,G,B),那么,我们可以通过下面几种方法,将其转换为灰度:

1.浮点算法:Gray=R×0.3+G×0.59+B×0.11

2.整数方法:Gray=(R×30+G×59+B×11)/100

3.移位方法:Gray =(R×28+G×151+B×77)>>8;

4.平均值法:Gray=(R+G+B)/3;
通过公式法求灰度图容易报错,小编总结了几个原因:①导入图片时所用的包与获取图片像素点用的包不一样,导致RGB的顺序改变,需要先把RGB的顺序做统一化。②图片的尺寸容易混淆,导致列表或者数组的维度不一样。
如果没有特别说明不可以调用包或者模块,建议直接调用包或者模块来得到图片的灰度图。

获取灰度图的像素值

大家可以搜索这篇文章:
python:遍历读取图像灰度值,并存入一个新数组中。作者:1226km。
这里要说明一下,对于一张本身就是灰度图像(8位灰度图像)来说,它的像素值就是它的灰度值。如果是一张彩色图像,则它的灰度值需要经过函数映射来得到。

统计灰度值出现的次数,转化为直方图

首先统计出灰度值出现的次数,相当于统计一个列表中每个元素出现的次数。这里有四种方法,大家可以参考文章:
Python统计一个列表中每个元素出现的次数。四种方法,总有一款适合你。作者:三尺秋水一点飞鸿。
小编采用的是for循环的方法,最后以字典的形式输出。
然后使用dict.key()以及dict.values()语句得到字典的键和值。将其转化为列表的形式。

**这里需要注意输出直方图时,x和y都需要使用list形式,小编使用数组形式时报错了__

最后附上总代码:

参考文章地址:
[1]https://blog.csdn.net/fwt1226/article/details/109582080?utm_medium=distribute.pc_aggpage_search_result.none-task-blog-2aggregatepagefirst_rank_ecpm_v1~rank_aggregation-5-109582080.pc_agg_rank_aggregation&utm_term=python%E8%AF%BB%E5%8F%96%E5%9B%BE%E7%89%87%E7%81%B0%E5%BA%A6%E5%80%BC&spm=1000.2123.3001.4430

[2]https://blog.csdn.net/qq_42467563/article/details/86182266

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/286436.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号