多语言展示
当前在线:1168今日阅读:61今日分享:18

【图像处理】亮度累计与灰度图像直方图

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

电脑

2

python

方法/步骤
1

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

2

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

3

灰度图正是依靠不同的亮度,才得以区分出不同的事物。灰度图是单通道图片,不会出现彩色效果。

4

下面统计图中亮度为50的象素的数目,在整个图片中所占的比例。u,v=img.shapek=0for i in range(u):    for j in range(v):        if img[i,j]==50:            k=k+1print(k)

5

这样,遍历整个图片,就得到了亮度为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]]+1print(c)

6

上面统计出了不同亮度的象素数目,同时除以象素的总数目,就得到不同亮度在图中的比重。c0=np.array(c)c1=c0/(u*v)实际上,u*v=sum(c)

7

所谓的直方图,就是图象亮度的统计图。plt.plot(c,color=g)

注意事项

代码:pan.baidu.com/s/11qzh3NIIwHQPqKG2zCn1yw,提取码:ubpx。

推荐信息