图像直方图:图像直方图是反映一个图像像素分布的统计表,其实横坐标代表了图像像素的种类,可以是灰度的,也可以是彩色的。纵坐标代表了每一种颜色值在图像中的像素总数或者占所有像素个数的百分比。
图像是由像素构成,因为反映像素分布的直方图往往可以作为图像一个很重要的特征。在实际工程中,图像直方图在特征提取、图像匹配等方面都有很好的应用。
直方图均衡的原理和作用:直方图均衡化是将原图像通过某种变换,得到一幅灰度直方图为均匀分布的新图像的方法,这样增加了像素灰度值的动态范围,从而达到增强图像整体对比度的效果。
直方图均衡化算法分为三个步骤,第一步是统计直方图每个灰度级出现的次数,第二步是累计归一化的直方图,第三步是计算新的像素值。
第一步:
for(i=0;i<height;i++){
for(j=0;j<width;j++){
n[s[i][j]]++;
}
}
for(i=0;i<L;i++){
p[i]=n[i]/(width*height);
}
这里,n[i]表示的是灰度级为i的像素的个数,L表示的是最大灰度级,width和height分别表示的是原始图像的宽度和高度,所以,p[i]表示的就是灰度级为i的像素在整幅图像中出现的概率(其实就是p[]这个数组存储的就是这幅图像的归一化之后的直方图)。
第二步:
for(i=0;i<=L;i++){
for(j=0;j<=i;j++){
c[i]+=p[j];
}
}
c[]这个数组存储的就是累计的归一化直方图。
第三步:
max=min=s[0][0];
for(i=0;i<height;i++){
for(j=0;j<width;j++){
if(max<s[i][j]){
max=s[i][j];
}else if(min>s[i][j]){
min=s[i][j];
}
}
}
找出像素的最大值和最小值。
for(i=0;i<height;i++){
for(j=0;j<width;j++){
t[i][j]=c[s[i][j]]*(max-min)+min;
}
}
t[][]就是最终直方图均衡化之后的结果。
处理前的图片:
处理后的图片:
对于彩色的图片来说,直方图均衡化一般不能直接对R、G、B三个分量分别进行上述的操作,而要将RGB转换成HSV来对V分量进行直方图均衡化的操作。
图像信噪比的概念:信噪比SNR就是signal-to-noise ratio,使用电压平方比来定义的,是信号电压与噪声电压之比的平方的对数的十倍,在图像中被用来表示解压缩的客观保真度准则。
图像的信噪比的计算公式如下:
图像的信噪比应该等于信号与噪声的功率谱之比,但通常功率谱难以计算, 信噪比有一种方法可以近似估计图像信噪比,即信号与噪声的方差之比。首先计算图像所有象素的局部方差,将局部方差的最大值认为是信号方差,最小值是噪声方差,求出它们的比值,再转成dB数,最后用经验公式修正,具体参数请参看"反卷积与信号复原(邹谋炎)"。s/n叫做信噪比。由于在实际使用中S与N的比值太大,故常取其分贝数(db)。分贝与信噪比的关系为 : db=10lg(s/n)
举例
一般监控摄像机的图像信噪比是在50dB,像美电贝尔系列BL-CB800ATM-N.
信噪比是信号电压对于噪声电压的比值,通常用符号s/n来表示。由于在一般情况下,信号电压远高于噪声电压,比值非常大,信噪比的单位用db来表示。一般摄像机给出的信噪比值均是在agc(自动增益控制)关闭时的值,因为当agc接通时,会对小信号进行提升,使得噪声电平也相应提高。 信噪比的典型值为45~55db,若为50db,则图像有少量噪声,但图像质量良好;若为60db,则图像质量优良,不出现噪声。