图像增强处理-1
图像增强是图像处理中一个重要的内容,在图像生成,传输或变换的过程中,由于多种因素的影响,造成图像质量下降,图像模糊,特征淹没,给分析和识别带来困难。因此,按特定的需要将图像中感兴趣的特征友选择地突出,衰减不需要的特征,提高图像的可懂度是图像增强的主要内容。图像增强不考虑图像降质的原因,而且改善后的图像也不一定逼近原图像,这是它与图像复原本质的区别。图像增强的主要目的有两个:一是改善图像的视觉效果,提高图像的清晰度;二是将图像转换成一种更适合人类或机器进行分析处理的形式,一边从图像中获取更多有用的信息。
图像增强方法大致分为两类:一类是空间域处理法,另一类是频域处理法。空间域是直接对图像的像素进行处理,基本上是以灰度映射变换为基础的,所用的映射变换取决于图像的特点和增强的目的,主要包括灰度修正,图像平滑和锐化等。频域处理法是在图像的某种变换域内,对变换后的系数进行运算,然后再求其饭变换到原来的空间域得到增强的图像,主要包括:低通滤波,高通滤波,带阻滤波,同态滤波等。
1、噪声
噪声可以理解为影响传感器对所接受图像源信息进行理解或分析的各种因素。噪声一般是不可预测的随机信号,它只能用概率统计的方法去认识。噪声对图像的输入,采集和处理的各个环节以及输出结果全过程都有影响。因此,去噪已经成为图像处理中极为重要的手段,也是图像处理领域研究的一个重点。
1.1、噪声的分类
常见的噪声有以下几种:
(1)白噪声
(2)椒盐噪声:是一种在图像中产生黑色、白色点的脉冲噪声。该噪声在图像中显现较为明显,对图像分割。边缘检测、特征提取等后续处理具有严重的破坏作用。
(3)冲击噪声
(4)量化噪声
2、图像质量评价
在进行图像增强过程中,对一副含有噪声的图像在进行去噪之后图像质量是否有所提高,需要一个评价标准来衡量,因此,简单地引入图像的客观评价标准对去噪前后的图像质量进行衡量。信噪比是比较常用的一个标准。
图像的信噪比计算公式如下:
其中,M和N分别是图像长度和宽度上的像素个数,f(x,y)和g(x,y)分别是原始图像和去噪后的图像在点(x,y)处的灰度值。
信噪比的数值越大,说明图像质量越好。
下面是一段实现该算法的代码:
CString CImgEnhance::SNR(unsigned char* m_pSrcImgData) { int byteCount; // DIB位图的字节数 int i; // LPBITMAPINFOHEADER lpbmi; // lpbmi=(LPBITMAPINFOHEADER)lpSrcDIB; // m_pSrcImgData=(LPBYTE)lpbmi lpbmi->biSize sizeof(RGBQUAD)*lpbmi->biClrUsed; //计算图像信噪比 double temp1=0.0; double temp2=0.0; //处理8位灰度图像 if (m_nBitCount==8) { //计算整幅DIB位图的字节数 byteCount =m_imgHeight*m_imgWidth*m_nBitCount/8; for( i=0; i<byteCount; i ) { temp1=temp1 (double)m_pImgData[i]*m_pImgData[i]; temp2=temp2 (double)(m_pImgData[i]-m_pSrcImgData[i])*(m_pImgData[i]-m_pSrcImgData[i]); } } else { AfxMessageBox("只能处理8位灰度图像!"); return "ERROR"; } double SNR=temp1/temp2; SNR=10*log10(SNR); CString StrSNR; StrSNR.Format("%f",SNR); return StrSNR; }