0

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

4

2 回答 2

1

您可以使用conv2或更一般地使用nlfilter. 由于 Dan 已经建议conv2,我将举另一个例子:

如果您的矩阵是M并且窗口是w10x10:

f = @(x) isequall(x(:)),w(:));
Ans = nlfilter(M,[10 10],f);
于 2013-05-07T17:32:04.873 回答
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 值将为零

于 2013-07-16T06:06:56.263 回答