这里讨论利用输入图像中像素的小邻域来产生输出图像的方法,在信号处理中这种方法称为滤波(filtering)。其中,最常用的是线性滤波:输出像素是输入邻域像素的加权和。
1.相关算子(Correlation Operator)
步骤:
1)滑动核,使其中心位于输入图像g的(i,j)像素上
2)利用上式求和,得到输出图像的(i,j)像素值
3)充分上面操纵,直到求出输出图像的所有像素值
例:
A = [17 24 1 8 15 h = [8 1 6
23 5 7 14 16 3 5 7
4 6 13 20 22 4 9 2]
10 12 19 21 3
11 18 25 2 9]Matlab 函数:imfilter(A,h)
2.卷积算子(Convolution)
步骤:
1)将核围绕中心旋转180度
2)滑动核,使其中心位于输入图像g的(i,j)像素上
3)利用上式求和,得到输出图像的(i,j)像素值
4)充分上面操纵,直到求出输出图像的所有像素值
Matlab 函数:Matlab 函数:imfilter(A,h,\'conv\')% imfilter默认是相关算子,因此当进行卷积计算时需要传入参数\'conv\'
3.边缘效应
当对图像边缘的进行滤波时,核的一部分会位于图像边缘外面。
常用的策略包括:
1)使用常数填充:imfilter默认用0填充,这会造成处理后的图像边缘是黑色的。
2)复制边缘像素:I3 = imfilter(I,h,\'replicate\');
4.常用滤波
fspecial函数可以生成几种定义好的滤波器的相关算子的核。
例:unsharp masking 滤波
I = imread(\'moon.tif\'); h = fspecial(\'unsharp\'); I2 = imfilter(I,h); imshow(I), title(\'Original Image\') figure, imshow(I2), title(\'Filtered Image\')
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:图像处理-线性滤波-1 基础(相关算子、卷积算子、边缘效应) - Python技术站