(1)滑動窗口不需要邊緣擴展且可以直接對塊圖像進行操作
num1 = 3;
num2 = 3;
[m,n] = size(I);
mm = m-num1;
nn = n-num2;
for i = 1:1:mm
for j = 1:1:nn
Block = I(i:i+num1,j:j+num2);%需要對Block處理的下面可以操作
if(((j+num2) >= n)||((j+num2) >= n))
break;
end
end
end
(2)滑動窗口遍歷圖像,算法主要針對中心像素,相鄰像素的值可以通過已經計算好的整張圖像的值直接取值,而不需要取出塊後再計算,以求解中心點和相鄰點的二階包裹相位差爲例。
I=padarray(I,[1,1],'both');
[m,n]=size(I);
for i=2:m-2
for j=2:n-2
H(i,j)= wrapToPi(I(i,j-1)-I(i,j))-wrapToPi(I(i,j)-I(i,j+1));
V(i,j)= wrapToPi(I(i-1,j)-I(i,j))-wrapToPi(I(i,j)-I(i+1,j));
D1(i,j)= wrapToPi(I(i-1,j-1)-I(i,j))-wrapToPi(I(i,j)-I(i+1,j+1));
D2(i,j)= wrapToPi(I(i-1,j+1)-I(i,j))-wrapToPi(I(i,j)-I(i+1,j-1));
end
end