直方图尖峰python_用python绘制图像直方图的算法

本文介绍一下,用python绘制图像直方图的具体步骤。

工具/原料

电脑

python3+

opencv模块

方法/步骤

1

给出一张单通道的灰度图。

04d7a614f4d0b503e807124bcc4ec28332bf206e.jpg?x-bce-process=image%2Fresize%2Cm_lfit%2Cw_500%2Climit_1

2

查看图中所有的像素的取值范围。

img=cv2.imread('a.png')

xs=np.reshape(img,(1,-1))

qzfw=set(xs[0])

0到255之间的每一个正整数,都能够在img里面找到。

32fe25ef354f50b89cebfc6edc4afa32929c186e.jpg?x-bce-process=image%2Fresize%2Cm_lfit%2Cw_500%2Climit_1

3

查看图中像素值为0的像素的个数:

w=list(xs[0])

print(w.count(0))

这说明,在图中,一共有2664个黑色像素。

def3c219ce2c5b1b2c0ba0692b39131fcfec0e6e.jpg?x-bce-process=image%2Fresize%2Cm_lfit%2Cw_500%2Climit_1

4

查看各个像素值,在img中出现的次数:

c=[]

for i in qzfw:

d=w.count(i)

c.append(d)

亮度高的像素,所占的比重很少。

d2987775f2c4ec99629650b4c3fe1e425c6b076e.jpg?x-bce-process=image%2Fresize%2Cm_lfit%2Cw_500%2Climit_1

5

用折线段把这些数据画出来,就是图像的直方图。

绘制这个直方图:

import matplotlib.pyplot as plt

plt.plot(list(qzfw),list(c))

plt.show()

1f03436b04d14929d85d6da663e5eceeacbc7e6e.jpg?x-bce-process=image%2Fresize%2Cm_lfit%2Cw_500%2Climit_1

6

直方图如下。

像素值150左右,处于峰值。

edafb3bcbe2f47700fcd8b6f6f3b3b860321796e.jpg?x-bce-process=image%2Fresize%2Cm_lfit%2Cw_500%2Climit_1

7

在图像上画出直方图。

03605157935653bba9f5304e1d0b31210461716e.jpg?x-bce-process=image%2Fresize%2Cm_lfit%2Cw_500%2Climit_1

END

经验内容仅供参考,如果您需解决具体问题(尤其法律、医学等领域),建议您详细咨询相关领域专业人士。

举报作者声明:本篇经验系本人依照真实经历原创,未经许可,谢绝转载。

展开阅读全部

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值