数字图像处理图像平滑与锐化解析.pptx

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
图像平滑与锐化 配套课件 数字图像处理 — 编程框架、理论分析、实例应用和源码实现 数字图像处理 1 图像平滑与锐化 在统计学和图像处理领域中,对一个数据集(如图像)进行平滑就是产生一个近似的函数,目的是尝试获取数据的重要模式特征,并忽略噪声或者其它的细微结构信息。 在图像处理和计算机视觉领域,平滑的概念通常被用于尺度空间的表示中。 由于人类视觉系统的特性,锐化后的图像看起来更加清晰,但是实际上锐化操作并没有提高真正的分辨率。 数字图像处理 2 图像平滑与尺度空间 数字图像处理 3 图像平滑 数字图像处理 4 低通滤波法 均值滤波法 中值滤波法 高斯滤波法 低通滤波法 低通滤波器,就是通过低频信号且抑制高频信号的滤波器。 一个理想的低通滤波器,就是能够完全剔除高于截止频率的所有信号,并且保留所有低于截止频率的信号。 在实时应用中,实际滤波器可以通过将信号延长一小段时间以得到未来的一小部分信号信息,这样就可以近似的实现理想滤波器。 数字图像处理 5 巴特沃斯滤波器 切比雪夫滤波器 椭圆滤波器 巴特沃斯滤波器 数字图像处理 6 切比雪夫滤波器 切比雪夫滤波器是在通带或阻带上频率响应幅度等波纹波动的滤波器。 切比雪夫滤波器在过渡带比巴特沃斯滤波器衰减要快,但是频率响应的幅频特性不如巴特沃斯滤波器平坦。 在通带波动的切比雪夫滤波器的数学表达为 在阻带波动的切比雪夫滤波器的数学表达为 数字图像处理 7 椭圆滤波器 数字图像处理 8 低通滤波器 数字图像处理 9 巴特沃斯滤波器 通带波动下的切比雪夫滤波器 阻带波动下的切比雪夫滤波器 椭圆函数滤波器 傅里叶变换 数字图像处理 10 傅里叶变换示意图 数字图像处理 11 傅里叶变换示意图 数字图像处理 12 快速傅里叶变换 数字图像处理 13 基于傅里叶变换域的低通滤波 涉及4种图像初始、中间或最终结果,和三个主要处理步骤。 图像结果包括原始图像、原始变换域、滤波后的变换域和滤波后的图像; 处理步骤包括傅里叶正变换、低通滤波和傅里叶逆变换。 将原始图像转化为复数数组进行傅里叶正变换,输出得到原始变换域; 对原始变换域进行频域上的处理,如低通滤波,得到滤波后的变换域; 将滤波后的变换域进行傅里叶逆变换,便得到最终的复数数组,取复数的实部信息便可以得到低通滤波后的图像结果。 数字图像处理 14 基于傅里叶变换域的低通滤波 低通滤波,就是将高频信息剔除,只保留低频信息,对于空域图像结果而言就是图像变得模糊(或者说平滑)了,因为抑制了图像的边缘信息; 而对于频域中间结果图像而言,就是图像四周的信息被抑制了,看起来就是中间低频信息所占区域变小了。 数字图像处理 15 傅里叶正变换和逆变换的总源码框架 傅里叶变换是基于复数空间的,所以需要一个基本的数据结构来表示复数,为 typedef struct {double m_re; double m_im;} complex;, 其中m_re为实部,m_im为虚部。 数字图像处理 16 int CImageProcessing::forward_fft2d(complex *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。 这样,原始图像的总像素个数就是复数数组的维数,每个复数的实部就对应像素的灰度,虚部设为0。 数字图像处理 17 数字图像处理 18 CTArray complex CImageProcessing::Image_to_complex( const CTMatrix BYTE 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( image_height ) ) ) new_height = long( pow( 2.0f, fastlog2(

文档评论(0)

武神赵子龙 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档