Matlab之imfilter()详解

http://blog.csdn.net/star_gdx/article/details/14644535


Imfilter(Img,filter)
Img:待处理矩阵
filter:滤波器
其实imfilter(Img,filter)的这个方法的实现原理是很简单的,下面通过一个实例来说明:
Img:(5*5的矩阵)
Img =
   90    29    33   12      9
   19    39     0   37     84
   29     2    21   14      8
   39    84    88   21     24
  392     8     5   32     58
imfilter:(3*3的滤波器)
imfilter =
0.0400    0.1000    0.0600
0.1000    0.2500    0.1500
0.0600    0.1500    0.0900
若要处理Img(1,1),实际就要用到Img(1,2),Img(2,1),Img(2,2)来得到,下面我将用Img’来表示处理后的值,即
Img’(1,1) =
Img(1,1)*imfilter(1,1) + Img(1,2)*imfilter(1,2) +
Img(2,1)*imfilter(2,1) + Img(2,2)*imfilter(2,2)
若要处理Img(2,2),实际就要用到Img(1,1),Img(1,2),Img(1,3),Img(2,3),Img(2,1),Img(3,1),Img(3,2),Img(3,3)来得到,下面我将用Img’来表示处理后的值,即
Img’(2,2) =
Img(1,1)*imfilter(1,1) + Img(1,2)*imfilter(1,2) + Img(1,3)*imfilter(1,3) +
Img(2,1)*imfilter(2,1) + Img(2,2)*imfilter(2,2) + Img(2,3)*imfilter(2,3) +  
Img(3,1)*imfilter(3,1) + Img(3,2)*imfilter(3,2) + Img(3,3)*imfilter(3,3)
综上,即在处理时只要把滤波器的中心点和要处理的点重合,然后把能够重合的所有Img和imfilter的值相乘即可得到想要的值

你可能感兴趣的:([MATLAB])