数字图像处理图像平滑与锐化_第1页
数字图像处理图像平滑与锐化_第2页
数字图像处理图像平滑与锐化_第3页
数字图像处理图像平滑与锐化_第4页
数字图像处理图像平滑与锐化_第5页
已阅读5页,还剩41页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、图像平滑与锐化配套课件数字图像处理 编程框架、理论分析、实例应用和源码实现数字图像处理1图像平滑与锐化在统计学和图像处理领域中,对一个数据集(如图像)进行平滑就是产生一个近似的函数,目的是尝试获取数据的重要模式特征,并忽略噪声或者其它的细微结构信息。在图像处理和计算机视觉领域,平滑的概念通常被用于尺度空间的表示中。由于人类视觉系统的特性,锐化后的图像看起来更加清晰,但是实际上锐化操作并没有提高真正的分辨率。数字图像处理2图像平滑与尺度空间数字图像处理3图像平滑数字图像处理4低通滤波法均值滤波法中值滤波法高斯滤波法低通滤波法低通滤波器,就是通过低频信号且抑制高频信号的滤波器。一个理想的低通滤波器

2、,就是能够完全剔除高于截止频率的所有信号,并且保留所有低于截止频率的信号。在实时应用中,实际滤波器可以通过将信号延长一小段时间以得到未来的一小部分信号信息,这样就可以近似的实现理想滤波器。数字图像处理5巴特沃斯滤波器切比雪夫滤波器椭圆滤波器巴特沃斯滤波器数字图像处理6切比雪夫滤波器切比雪夫滤波器是在通带或阻带上频率响应幅度等波纹波动的滤波器。切比雪夫滤波器在过渡带比巴特沃斯滤波器衰减要快,但是频率响应的幅频特性不如巴特沃斯滤波器平坦。在通带波动的切比雪夫滤波器的数学表达为在阻带波动的切比雪夫滤波器的数学表达为数字图像处理7椭圆滤波器数字图像处理8低通滤波器数字图像处理9巴特沃斯滤波器通带波动下

3、的切比雪夫滤波器阻带波动下的切比雪夫滤波器椭圆函数滤波器傅里叶变换数字图像处理10傅里叶变换示意图数字图像处理11傅里叶变换示意图数字图像处理12快速傅里叶变换数字图像处理13基于傅里叶变换域的低通滤波涉及4种图像初始、中间或最终结果,和三个主要处理步骤。图像结果包括原始图像、原始变换域、滤波后的变换域和滤波后的图像;处理步骤包括傅里叶正变换、低通滤波和傅里叶逆变换。将原始图像转化为复数数组进行傅里叶正变换,输出得到原始变换域;对原始变换域进行频域上的处理,如低通滤波,得到滤波后的变换域;将滤波后的变换域进行傅里叶逆变换,便得到最终的复数数组,取复数的实部信息便可以得到低通滤波后的图像结果。数

4、字图像处理14基于傅里叶变换域的低通滤波低通滤波,就是将高频信息剔除,只保留低频信息,对于空域图像结果而言就是图像变得模糊(或者说平滑)了,因为抑制了图像的边缘信息;而对于频域中间结果图像而言,就是图像四周的信息被抑制了,看起来就是中间低频信息所占区域变小了。数字图像处理15傅里叶正变换和逆变换的总源码框架傅里叶变换是基于复数空间的,所以需要一个基本的数据结构来表示复数,为typedef struct double m_re; double m_im; complex;,其中m_re为实部,m_im为虚部。数字图像处理16int CImageProcessing:forward_fft2d(c

5、omplex *array, int rows, int cols)return(fft2d(array, rows, cols, FFT_FORWARD);int CImageProcessing:inverse_fft2d(complex *array, int rows, int cols)return(fft2d(array, rows, cols, FFT_INVERSE);从原始图像向复数数组转化最直观的做法,就是将每一个像素的灰度值作为每一个复数的实部,实际上这个做法是完全正确的。但是,如何设置复数的虚部呢?至此,读者应该能想到,设置为0。这样,原始图像的总像素个数就是复数数组的

6、维数,每个复数的实部就对应像素的灰度,虚部设为0。数字图像处理17数字图像处理18CTArray CImageProcessing:Image_to_complex( const CTMatrix& gray_image, long& new_height, long& new_width )long image_height = gray_image.Get_height();long image_width = gray_image.Get_width();new_height = image_height;new_width = image_width;if( !( power_of_2

7、( image_height ) ) ) new_height = long( pow( 2.0f, fastlog2( image_height ) ) );if( !( power_of_2( image_width ) ) ) new_width = long( pow( 2.0f, fastlog2( image_width ) ) );CTArray array_of_complex( new_height * new_width );for( int row = 0; row new_height; row + )for( int column = 0; column new_wi

8、dth; column + )array_of_complex row * new_width + column .m_re = gray_image row column ;array_of_complex row * new_width + column .m_im = 0;return array_of_complex;从复数数组得到最终的结果空域图像对于最后的复数数组向空域图像转换的问题,只要取复数的实部作为图像像素的灰度值就可以了。数字图像处理19CTMatrix CImageProcessing:Complex_to_image( const CTArray& complex_ar

9、ray, long image_height, long image_width )CTMatrix gray_image( image_height, image_width );ASSERT( complex_array.GetDimension() = image_height * image_width );for( int row = 0; row image_height; row + )for( int column = 0; column image_width; column + )gray_image row column = BYTE( complex_array row

10、 * image_width + column .m_re );return gray_image;将频域中间结果转化为显示图像对于一般的频率信息的显示,则需要取复数的幅度作为显示图像的像素值,并且考虑到灰度像素的值域(0-255)问题,需要除以一个常量(如100)来使得人眼能够看到频率的变化信息。数字图像处理20CTMatrix CImageProcessing:Display_frequency( const CTArray& complex_array, long image_height, long image_width )CTMatrix gray_image( image_hei

11、ght, image_width );ASSERT( complex_array.GetDimension() = image_height * image_width );for( int row = 0; row image_height; row + )for( int column = 0; column image_width; column + )gray_image row column = BYTE( sqrt( complex_array row * image_width + column .m_re * complex_array row * image_width +

12、column .m_re+ complex_array row * image_width + column .m_im* complex_array row * image_width + column .m_im ) / 100.0 );return gray_image;数字图像处理21CTArray CImageProcessing:Low_pass_filter( CTArray original_signal )long dimension = original_signal.GetDimension();double threshold = 0;for( int index =

13、0; index threshold ) threshold = magnitude;threshold /= 100;for( int index = 0; index dimension; index + )double magnitude = sqrt( original_signal index .m_re * original_signal index .m_re + original_signal index .m_im * original_signal index .m_im );double eplon = 1.0 / sqrt( 1 + ( threshold / magn

14、itude ) * ( threshold / magnitude ) );original_signal index .m_re *= eplon;original_signal index .m_im *= eplon;return original_signal;基于傅里叶变换域的低通滤波框架原始图像到复数数组的转化傅里叶正变换低通滤波傅里叶逆变换复数数组到结果图像的转化数字图像处理22基于傅里叶变换域的低通滤波框架数字图像处理23/ 1)原始图像到复数数组的转化CTArray array_of_complex = CImageProcessing:Image_to_complex( m

15、_image.Get_gray_image(), new_height, new_width );/ 2)傅里叶正变换complex* pointer_of_complex = new complex array_of_complex.GetDimension() ;array_of_complex.ExportTo( pointer_of_complex );CImageProcessing:forward_fft2d( pointer_of_complex, new_height, new_width ); array_of_complex.ImportFrom( pointer_of_c

16、omplex );/ 3)低通滤波array_of_complex = CImageProcessing:Low_pass_filter( array_of_complex ); / 4)傅里叶逆变换array_of_complex.ExportTo( pointer_of_complex );CImageProcessing:inverse_fft2d( pointer_of_complex, new_height, new_width ); array_of_complex.ImportFrom( pointer_of_complex );delete pointer_of_complex

17、;/ 5)复数数组到结果图像的转化CTMatrix filter_image = CImageProcessing:Complex_to_image( array_of_complex, new_height, new_width );高斯滤波法数字图像处理24高斯滤波法数字图像处理25高斯滤波法数字图像处理26高斯滤波结果示例数字图像处理27均值滤波法均值滤波法,就是取一个图像区域中的平均值作为滤波后的像素值,其非常类似于高斯滤波,也是属于基于空域的模板卷积的方法。均值滤波所对应的卷积模板中的各个权重都是一样的,在实际计算中,也根本不需要进行模板卷积操作,只需要进行各个像素累加取平均就行了。

18、均值滤波,是属于线性的窗口滤波,是典型的低通滤波方法,其基本的思想就是对任何一个元素取其邻域中的平均值作为滤波响应。数字图像处理28均值滤波法数字图像处理29英语单词发音均值滤波模板示意图均值滤波法数字图像处理30一维均值滤波实现示意图均值滤波结果示例中值滤波法中值滤波,是一种非线性的窗口滤波方法,可以在很容易去除噪声的基础上保留边缘信息。中值滤波的基本思想就是,对于图像中的任意一个像素,从其邻域中的所有像素中挑选与其它像素最为相似的像素。数字图像处理31混合中值滤波混合中值滤波,也是一种非线性的滤波算法,相对简单的中值滤波其具有很好的边缘保留特性。混合中值滤波的基本思想是,对图像中的任意一个

19、像素运用多次简单中值滤波,每次中值滤波所使用的邻域形状会发生变化,然后取多次中值结果中的中值作为最后的滤波响应。具体来说,可以先运用十字模板进行简单中值滤波,然后再运用叉形模板进行滤波,最后取上述两个中值与原始像素本身进行比较,并提取它们之间的中值作为最后的结果。数字图像处理32混合中值滤波数字图像处理33数字图像处理34数字图像处理35中值滤波结果示例数字图像处理36图像锐化图像锐化,顾名思义,就是让图像看起来更尖锐一点,更清晰一点。图像锐化的目的,则是让图像的内部对比度增大,使得用户能够看起来更加清晰,其存在一个副作用,就是可能会添加用户不感兴趣的信息,即噪声。从噪声的角度来说,图像平滑是

20、起抑制作用的,而图像锐化是起促进作用的;从对比度的角度来说,图像平滑是起缩小作用的,而图像锐化是起放大作用的。数字图像处理37基于傅里叶变换域的高通滤波框架基本思路就是,首先对原始图像进行傅里叶正变换,得到原始傅里叶变换域;然后对原始变换域进行高通滤波操作,滤波后的直接结果还是变换域;最后对滤波后的变换域再进行傅里叶逆变换,得到滤波处理后的图像,即为最终结果。数字图像处理38巴特沃斯低通与高通滤波器示意图数字图像处理39基于巴特沃斯滤波器的低通滤波与高通滤波数字图像处理40低通滤波高通滤波基于圆形滤波器的高通滤波数字图像处理41CTArray CImageProcessing:High_pass_filter( CTArray original_signal, long image_height, long image_width )long dimension = original_signal.GetDimension();long radius = min( image_height, image_width ) / 7;for( int row = 0; row image_height; row + )for( int column = 0;

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论