在两个图像(主图像和子图像)矩阵上滑动窗口

时间:2013-05-07 10:51:29

标签: image matlab matrix sliding-window

我是matlab的新手并且遇到了一些问题。如果你能帮助我,我将不胜感激。我必须继续使用滑动窗口技术。主窗口应该是40x40矩阵,我想要滑过的子矩阵是10x10窗口图像矩阵。我想检查两个矩阵是否相等,我认为' isequal()'函数是检查两个矩阵相等的更好选择。请帮忙。

2 个答案:

答案 0 :(得分:1)

您可以使用conv2或更常用的nlfilter。由于丹已经建议conv2我将给出另一个例子:

如果您的矩阵为M且窗口为w 10x10:

f = @(x) isequall(x(:)),w(:));
Ans = nlfilter(M,[10 10],f);

答案 1 :(得分:0)

试试此代码

a=[1 : 8 ; 9 : 16 ; 17 : 24];
b=[1 : 8 ; 9 : 16 ; 17 : 24];

imw=size(a,2);

imh=size(a,1);

disp(imh);

disp(imw);

wh=1;

ww=3; 

for j=1:imh-wh+1 

    for i=1:imh-ww+1

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

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

        w3=w1-w2;

        disp(w3);

    end

end

此处窗口大小为1X3

您可以通过更改循环限制和ww,wh值

来更改窗口大小

如果2个矩阵相似则w3值将为零