数字图像平滑技术入门(图像滤波处理、降噪处理)

图像平滑的主要目的是减少噪声(噪声:你就理解成图像中的杂质)。图像中的噪声种类很多,对图像信号幅度和相位的影响十分复杂,有些噪声和图像信号不相关,有些是相关的,噪声之间也可能相关。因此要减少图像的噪声必须争对具体情况采用不同方法。

噪声的概括:

图像噪声的来源:
图像系统中的噪声来自多方面,经常影响图像质量的噪声源主要有以下几类:
1、由光和电的基本性质引起的噪声。
2、电器的机械运动产生的噪声。例如,电流是否稳定造成
3、元器件材料本身引起的噪声。例如,材料本身缺陷等
4、系统内部设备电路所引起的噪声。

图像噪声的分类:
1、按生产上分为内部和外部噪声,外部噪声是指系统外部环境本身的干扰;内部噪声是指系统内部的硬件等原因产生的噪声。
2、按统计特性可以分为平稳和非平稳噪声,在实际中,其统计特性不随时间变化的噪声称为平稳噪声,随时间变化的是非平稳噪声。
3、按幅度分布形状来区分,幅度分布遵循高斯分布的噪声称为高斯噪声;按瑞利分布的噪声称为瑞利噪声。
4、按频谱形状来区分,频谱幅度均匀分布的噪声称为白噪声,频谱幅度与频率成反比的噪声称为1/f噪声,与频率平方成正比的噪声称为三角噪声。
5、按噪声和信号之间府关系可分为加性噪声和乘性噪声。假定信号为s(t),噪声为n(t),最终信号为s(t)+n(t)的为加性噪声;s(t)[1+n(t)]为乘性噪声。

图像噪声的特点:
1、噪声在图像中的分布和大小不规则
2、噪声与图像之间具有相关性
3、噪声具有叠加性。

 

局部统计法:灰度变换与直方图处理方法都是从图像的整体出发。

空域平滑法:
   1、邻域平均法:邻域平均法称为均值滤波器,其核心思想是在图像中选择一个子图像(或称为邻域)用该邻域里所有像素灰度的平均值去替换邻域中心像素的灰度值。考虑到噪声的特点,均值滤波是可以削弱噪声的效果。其优点是算法简单,运行速度快;缺点是在降低噪声的同时图像变模糊,邻域越大图像越模糊。
   2、加权平均法:加权平均法与邻域平均法类似,但邻域平均的每个点对于与平均数的贡献是相等的,而加权平均法的每个点对于平均数的贡献是不相等的。该方法基于邻域平均法,它认为邻域中的某些点要比其它点更加重要,为此会赋予该点一定的权重。加权平均法在一定程度上减少图像的模糊。
   3、多图平均法:多图平均法的基本思想是在相同条件下采集同一目标物的若干幅图像,然后通过对采集到的多幅图像进行平均的方法来消减随机噪声。

均值滤波相关算子:
mean_image(Image:ImageMean:MaskWidth,MaskHeight:)
作用:均值滤波
Image:需要滤波的图像
ImageMean:滤波后的图像
MaskWidth:掩模宽度
MaskHeight:掩模高度

中值滤波:
中值滤波是基于排序统计理论的一种能有效抑制噪声的非线性信号平滑处理技术,中值滤波的基本原理是把数字图像或数字序列中一点的值用该点的一个邻域中各点值的中值代替,让周围的像素值接近的真实值,从而消除孤立的噪声点。相比线性滤波平滑处理技术,线性滤波破坏了非噪声区域的信号(邻域平均法),非线性滤波可以在保留信号的同时滤除噪声。它对于消除孤立点和线段的烦扰十分有用,能减弱或消除傅里叶空间的高频分量,但也影响低频分量。高频分量往往是图像中区域边缘灰度值急剧变化的部分,该滤波可将这些分量消除,从而使图像得到平滑效果。中值滤波可以较好的保留图像边缘信息。
原理:方法是用某种结构的二维滑动模板,将板内像素按照像素值的大小进行排序,生成单调上升(或下降)的为二维数据序列。二维中值滤波输出为g(x,y)=med{f(x-k,y-l),(k,l∈W)} ,其中,f(x,y),g(x,y)分别为原始图像和处理后图像。W为二维模板,通常为3*3,5*5区域,也可以是不同的的形状,如线状,圆形,十字形,圆环形等。
中值滤波相关的算子:
median_image(Image:ImageMedian:MaskType,Radius,Margin:)
作用:中值滤波
Image:输入图像。
ImageMedian:滤波后图像
MaskType:掩模类型
Radius:掩模尺寸
Margin:边界处理。

频域低通滤波:
一幅图像中灰度均匀的平滑区域对应着傅里叶变换中的低频成分,灰度变化频繁的边缘细节对应着傅里叶变换中的高频成分。因此,过滤掉图像变换中的高频成分就能得到平滑图像。
   1、理想低通滤波器:由原点到截止频率确定一个距离,可以彻底滤除截止频率以外的高频分量。它处理后的图像高频能量部分丢失,并在空间域产生较严重的模糊(称为“振铃”现象,影响复原图像质量的众多因素之一)。截至频率越低,噪声滤除越多,振铃现象震荡的频率越低,高频分量损失越严重,图像越模糊。反之亦然。正是因为理想低通滤波存在“振铃”现象,导致其平滑效果下降。
   2、巴特沃斯低通滤波器:巴特沃斯滤波器是电子滤波器的一种,它是一种具有最大平坦幅度响应的低通滤波器。这种滤波器会大大减小处理后图像的模糊程度,无振铃现象,通过下降它的截止频率可实现一些平滑效果。
   3、指数低通滤波器:指数低通滤波器平滑后的图像无振铃现象,比巴特沃斯滤波的图像稍模糊些。
   4、梯形低通滤波器:滤波效果介于理想低通滤波和具有平滑过渡带的低通滤波器之间,滤波结果具有一定的振铃效应
低通滤波相关算子:
gen_lowpass(:ImageLowpass:Frequency,Norm,Mode,Width,Height:)
作用:生成理想的低通滤波图像
ImageLowpass:生成的滤波图像
Frequency:截止频率,决定了生成滤波图像中间白色椭圆区域的大小。
Norm:滤波器归一化引子
Mode:频率图中心位置
Width:生成滤波图像宽
Height:生成滤波图像高

 

对于一些噪声的处理效果演示:

高斯噪声过滤演示:

原图:

halcon代码:

*高斯噪声
read_image (Image, 'D:/Halcon-WorkSpaces/Test/Image/test5.jpg')
dev_open_window (0, 0, 512, 512, 'black', WindowHandle0)
dev_set_window (WindowHandle0)
dev_display (Image)
*在原图上添加高斯噪声
gauss_distribution (20, Distribution)
add_noise_distribution (Image, ImageNoise, Distribution)
dev_open_window (0, 0, 512, 512, 'black', WindowHandle0)
dev_set_window (WindowHandle0)
dev_display (ImageNoise)
************************
*均值滤波
mean_image (ImageNoise, ImageMean, 9, 9)
dev_open_window (0, 0, 512, 512, 'black', WindowHandle0)
dev_set_window (WindowHandle0)
dev_display (ImageMean)
*中值滤波
median_image (ImageNoise, ImageMedian, 'circle', 5, 'mirrored')
dev_open_window (0, 0, 512, 512, 'black', WindowHandle0)
dev_set_window (WindowHandle0)
dev_display (ImageMedian)
*低通滤波
get_image_size (ImageNoise, Width, Height)
gen_lowpass (ImageLowpass, 0.2, 'n', 'dc_center', Width, Height)
fft_generic (ImageNoise, ImageFFT, 'to_freq', -1, 'none', 'dc_center', 'complex')
convol_fft (ImageFFT, ImageLowpass, ImageConvol)
fft_generic (ImageConvol, ImageFFT1, 'from_freq', 1, 'none', 'dc_center', 'byte')
dev_open_window (0, 0, 512, 512, 'black', WindowHandle0)
dev_set_window (WindowHandle0)
dev_display (ImageFFT1)

效果:分别为加高斯噪声;均值滤波;中值滤波;低通滤波

 

椒盐噪声过滤演示:

halcon代码:

*椒盐噪声
read_image (Image, 'D:/Halcon-WorkSpaces/Test/Image/test5.jpg')
dev_open_window (0, 0, 512, 512, 'black', WindowHandle0)
dev_set_window (WindowHandle0)
dev_display (Image)
*向原图加入椒盐噪声
sp_distribution (5, 5, Distribution)
add_noise_distribution (Image, ImageNoise, Distribution)
dev_open_window (0, 0, 512, 512, 'black', WindowHandle0)
dev_set_window (WindowHandle0)
dev_display (ImageNoise)
***************************
*均值滤波
mean_image (ImageNoise, ImageMean, 9, 9)
dev_open_window (0, 0, 512, 512, 'black', WindowHandle0)
dev_set_window (WindowHandle0)
dev_display (ImageMean)
*中值滤波
median_image (ImageNoise, ImageMedian, 'circle', 5, 'mirrored')
dev_open_window (0, 0, 512, 512, 'black', WindowHandle0)
dev_set_window (WindowHandle0)
dev_display (ImageMedian)
*低通滤波
get_image_size (ImageNoise, Width, Height)
gen_lowpass (ImageLowpass, 0.2, 'n', 'dc_center', Width, Height)
fft_generic (ImageNoise, ImageFFT, 'to_freq', -1, 'none', 'dc_center', 'complex')
convol_fft (ImageFFT, ImageLowpass, ImageConvol)
fft_generic (ImageConvol, ImageFFT1, 'from_freq', 1, 'none', 'dc_center', 'byte')
dev_open_window (0, 0, 512, 512, 'black', WindowHandle0)
dev_set_window (WindowHandle0)
dev_display (ImageFFT1)

效果图:

 

图像本身的噪声处理演示:

演示用图:

halcon代码:

*图像本身的噪声
read_image (Image, 'D:/Halcon-WorkSpaces/Test/Image/test6.png')
dev_open_window (0, 0, 512, 512, 'black', WindowHandle0)
dev_set_window (WindowHandle0)
dev_display (Image)
*********************
*均值滤波
mean_image (Image, ImageMean, 3, 3)
dev_open_window (0, 0, 512, 512, 'black', WindowHandle1)
dev_set_window (WindowHandle1)
dev_display (ImageMean)
*中值滤波
median_image (Image, ImageMedian, 'circle', 3, 'mirrored')
dev_open_window (0, 0, 512, 512, 'black', WindowHandle2)
dev_set_window (WindowHandle2)
dev_display (ImageMedian)
*低通滤波
get_image_size (Image, Width, Height)
gen_lowpass (ImageLowpass, 0.2, 'n', 'dc_center', Width, Height)
fft_generic (Image, ImageFFT, 'to_freq', -1, 'none', 'dc_center', 'complex')
convol_fft (ImageFFT, ImageLowpass, ImageConvol)
fft_generic (ImageConvol, ImageFFT1, 'from_freq', 1, 'none', 'dc_center', 'byte')
dev_open_window (0, 0, 512, 512, 'black', WindowHandle3)
dev_set_window (WindowHandle3)
dev_display (ImageFFT1)

效果:

 

 

 

xxx

  • 2
    点赞
  • 36
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值