本文给出的图像是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。