生活百科知识

经验知识首页 > 家电选购 > 详细经验讲解内容页

[视频]【图像处理】亮度累计与灰度图像直方图

关于丝芙兰【图像处理】亮度累计与灰度图像直方图,期待您的经验分享,当代劳模,所有人都应该向你学习 !
无情天魔精致 2018-12-15 21:18:36 34422人看过 分享经验到微博

更新:2024-03-29 13:35:07杰出经验

来自2345网址导航https://www.2345.com/的优秀用户无情天魔精致,于2018-12-15在生活百科知识平台总结分享了一篇关于“【图像处理】亮度累计与灰度图像直方图里程”的经验,非常感谢无情天魔精致的辛苦付出,他总结的解决技巧方法及常用办法如下:

本文给出的图像是8位的灰度图像,2^8=256,因此不同的亮度,用0到255之间的整数表示。本文用到的工具是python。

工具/原料

电脑python

方法/步骤

1/7分步阅读

如果图中每个象素的亮度都是0,那么此图看上去就是黑色的。

a=img*0

[图]2/7

如果图中每个象素的亮度都是255,那么此图看上去就是白色的。

b=a+255

[图]3/7

灰度图正是依靠不同的亮度,才得以区分出不同的事物。

灰度图是单通道图片,不会出现彩色效果。

[图]4/7

下面统计图中亮度为50的象素的数目,在整个图片中所占的比例。

u,v=img.shape

k=0

for i in range(u):

for j in range(v):

if img[i,j]==50:

k=k+1

print(k)

[图]5/7

这样,遍历整个图片,就得到了亮度为50的象素的数目。

但是,要统计出所有不同亮度的象素数,需要反复遍历图片256次吗?

其实不用,实际上遍历一次足矣。

c=[0]*256

每个象素,若亮度是a,就在c[a]的位置上加1。

for i in range(u):

for j in range(v):

c[img[i,j]]=c[img[i,j]]+1

print(c)

[图]6/7

上面统计出了不同亮度的象素数目,同时除以象素的总数目,就得到不同亮度在图中的比重。

c0=np.array(c)

c1=c0/(u*v)

实际上,u*v=sum(c)

[图]7/7

所谓的直方图,就是图象亮度的统计图。

plt.plot(c,color=g)

[图]