1. nlfilter(General sliding-neighborhood operations)
B = nlfilter(A, [m n], fun),这是一个其中A是图像[m n]是图像处理区域的矩阵大小,fun是函数句柄,B是函数返回的一个标量。
意为对图像A的每个大小为m*n的patch进行fun函数的操作,patch的取法为滑动(sliding),即patch的中心像素遍历图像的每个点,当取到边界时需要进行边界延拓。fun必须是函数的句柄,可自由定义也可取matlab内置的函数。
例:这个例子是应用中值滤波对图像进行3*3的邻域滑块操作
A = imread(‘cameraman.tif‘);
A = im2double(A);
fun = @(x) median(x(:));
B = nlfilter(A,[3 3],fun);
imshow(A), figure, imshow(B)
2.blockproc
不重叠的块运算命令(distinct block processing),调用格式:B = blockproc(A,[M N],fun);
意为对图像A的每个不重叠的大小为m*n的块进行fun函数的操作,级联的结果为B。
fun = @(block_struct) ...
std2(block_