23、图像滤波
图像的平滑是一种是用的而数字图像处理技术,主要目的是为了减少图像中的噪声,一般情况下,在空间域内可以用领域平均来减少噪声;在频率域,由于噪声频谱通常在高频段,因此可以采用各种形式的低通滤波的方法俩较少噪声。下面介绍空间域的滤波。
一、图像的平滑
1、smooth_image(Image : ImageSmooth : Filter, Alpha : )
功能:使用递归滤波器对图像进行平滑(高斯滤波使用非递归滤波器)
Filter:滤波器('deriche1', 'deriche2', 'shen', 'gauss')
Alpha:滤波参数,值越小滤波效果越好(高斯滤波刚好相反)
read_image(Image,'lena')
smooth_image (Image, ImageSmooth, 'gauss', 3)
2、sigma_image(Image : ImageSigma : MaskHeight, MaskWidth, Sigma : )
功能:使用sigma(标准方差)对图像进行非线性滤波。
MaskHeight, MaskWidth:掩膜的宽度和高度
Sigma:平均的最大偏差,值越大,滤波效果越好
read_image(Image,'lena')
sigma_image (Image, ImageSigma, 5, 5, 3)
3、mean_image(Image : ImageMean : MaskWidth, MaskHeight : )
功能:对图像进行均值滤波
MaskWidth, MaskHeight:掩膜的宽度和高度
4、gauss_image(Image : ImageGauss : Size : )
功能:使用离散高斯函数对图像进行滤波
Size:滤波尺寸(3, 5, 7, 9, 11)值越大过过滤效果越好
read_image(Image,'lena')
gauss_image (Image, ImageGauss, 9)
二、中值滤波
中值滤波是一种非线性的信号处理方法,在一定条件下可以克服线性滤波器如最小均方差滤波,均值滤波等带来的图像细节模糊,二姐对滤除脉冲干扰以及图像扫描噪声最为有效。对于一些细节多,特别是点、线、顶尖细节多的图像不易采用中值滤波。中值滤波采用一个滑动窗口,将窗口中各灰度值得中值来代替指定点(一般是窗口的中心)灰度值。对于奇数个元素,中值是指按大小排序后,中间的数值;对于偶数个元素,中值是排序后中间两个元素灰度值得平均值。
1、median_image(Image : ImageMedian : MaskType, Radius, Margin : )
功能:使用多种掩膜对图像进行中值滤波
MaskType:滤波掩膜种类('circle', 'square')
read_image(Image,'lena')
median_image (Image, ImageMedian, 'circle', 7, 'mirrored')
图像的锐化的方法分为高通滤波和空域微分法。图像边缘或线条的细节(边缘)部分与图像频谱的高频分量相对应,
因此采用高通滤波让高频分量顺利通过,并适当抑制中低频分量,使得图像的细节变得更加清楚,实现图像的锐化。下面主要介绍空域的方法-----微分法。
1、frei_amp(Image : ImageEdgeAmp : : )
功能:使用Frei-Chen方法检测边缘(振幅,幅度)
rgb1_to_gray (Image, GrayImage)
median_image (GrayImage, ImageMedian, 'circle', 5, 'mirrored')
frei_amp (ImageMedian, ImageEdgeAmp)
2、kirsch_amp(Image : ImageEdgeAmp : : )
功能:使用Kirsh方法检测边缘(振幅,幅度)
read_image(Image,'lena')
rgb1_to_gray (Image, GrayImage)
median_image (GrayImage, ImageMedian, 'circle', 5, 'mirrored')
kirsch_amp (ImageMedian, ImageEdgeAmp1)
3、prewitt_amp(Image : ImageEdgeAmp : : )
功能:使用Prewitt方法检测边缘(振幅,幅度)
read_image(Image,'lena')
rgb1_to_gray (Image, GrayImage)
median_image (GrayImage, ImageMedian, 'circle', 5, 'mirrored')
prewitt_amp (ImageMedian, Pre)
4、sobel_amp(Image : EdgeAmplitude : FilterType, Size : )
功能:
rgb1_to_gray (Image, GrayImage)
sobel_amp (ImageMedian, Sob, 'sum_abs', 9)
5、nonmax_suppression_amp(ImgAmp : ImageResult : Mode : )
功能:抑制边缘上的非极大值点。
read_image(Image,'lena')
rgb1_to_gray (Image, GrayImage)
nonmax_suppression_amp (GrayImage, ImageResult, 'loc_max')
四、图像增强
1、emphasize(Image : ImageEmphasize : MaskWidth, MaskHeight, Factor : )
功能:增强图像对比度,算子增加图像的高频区域(边缘或角),由此产生的图像看起来更加清晰。
简单原理:
(1)、先使用mean_image算子进行低通滤波,滤波的掩膜尺寸为MaskWidth * MaskHeight
(2)、假设和原始图像中的像素值为orig , mean_image滤波后灰度值为mean , 结果图像灰度值为res,
则:
res = round((orig – mean)*Factor) + orig
其中Factor为系数,round()为四舍五入取整
read_image(Image,'mreut')
dev_display (Image)
draw_region(Region,3600)
reduce_domain(Image,Region,Mask)
emphasize(Mask,Sharp,7,7,2.0)
dev_display (Sharp)
2、illuminate(Image : ImageIlluminate : MaskWidth, MaskHeight, Factor : )
功能:增强图像的对比度。图像很暗的部分可以变得更亮,很亮的部分可以变得更暗。
简单原理:
(1)、先使用mean_image算子进行低通滤波,滤波的掩膜尺寸为MaskWidth * MaskHeight
(2)、假设和原始图像中的像素值为orig , mean_image滤波后灰度值为mean , 结果图像灰度值为new,
对于位图val为127,则:
new = round((val – mean)*Factor) + orig
其中Factor为系数值如下表
read_image(Image,'mreut')
dev_display (Image)
draw_region(Region,3600)
reduce_domain(Image,Region,Mask)
illuminate (Mask, ImageIlluminate, 101, 101, 0.7)
dev_display (ImageIlluminate)