1.图像的滑动邻域操作。
邻域操作是指将每个输入的像素值以及其某个邻域的像素值结合处理而得到对应的输出像素值的过程。邻域通常形状规则。如2*2,2*3之类。
滑动邻域操作一次处理一个像素。
对于m*n的邻域,中心像素坐标为:floor(([m,n]+1)/2);
例如:邻域2*2——>[1 1]
邻域2*3——>[1 2]
实现滑动邻域操作的步骤:
(1) 选择一个单独的像素。
(2) 确定该像素的滑动邻域。
(3) 对邻域中的像素值应用一个函数求值,该函数将返回标量计算结果。
(4) 将计算结果作为输出图像中对应的像素的值。
(5) 对输入图像的每个像素都重复以上步骤。
滑动邻域操作函数:
①
Y=nfilter(X,’index’,[m,n],fun,P1,P2....); %对图像X以邻域[m,n]进行fun函数操作。
其中,index为可选参数。若指定,则意为将图像作为索引图像处理。
例如:
对图像I的每个3*3邻域进行标准方差的运算 :I2= nfilter(I,[3,3],’std2’);
或者:
B=nfilter(A,[3,3],@myfun); %计算函数是自定义的,在myfun.m文件中。
②
Y=colfilt(X,[m,n],blocktype,fun);
其中,