-5

如何在matlab中应用滑动窗口来减去两个不同的图像,窗口大小必须是4X4,

请帮我

我想找到两个不同图像之间的相似度值。如果 A 和 B 是两个 2 图像以滑动窗口方式在每个 A&B 的每个 4x4 矩阵之间取差异我尝试了一个代码,我不知道它是否正确

m=imread('index.jpeg');
sal=imread('salt.jpg');
salt=rgb2gray(sal);
ab=rgb2gray(m);
imshow(ab);
imh=size(ab,2);
imw=size(ab,1);
wh=4;
ww=4; 
k=0;
disp(imh),disp(imw);
if 1
for j=1:imh+wh-1

    for i=1:imw+ww-1

        w1=ab(j:j+wh-1,i:i+wh-1,:);

        w2=salt(j:j+wh-1,i:i+wh-1,:);

        w3=w1-w2;

        disp(w3);
        disp('next mat');


    end
    k=k+1;
disp(k);
end

end
4

1 回答 1

0

你的 -loops的上限for是你的麻烦的原因。
您指定:

imh=size(ab,2);
imw=size(ab,1);

但是,您的for-loops 具有以下条件:

j=1:imh+wh-1

i=1:imw+ww-1

因此,您越过了“高度”和“宽度”维度。
试试这个:

for j=1:imh-wh
    for i=1:imw-ww
        w1=ab(j:j+wh,i:i+wh,:);
        w2=salt(j:j+wh,i:i+wh,:);
        w3=w1-w2;
    end
    k=k+1;
end
于 2013-07-10T19:43:34.623 回答