我是 matlab 的新手,被一些东西困住了。如果您能帮助我,将不胜感激。我必须继续使用滑动窗口技术。主窗口应该是一个 40x40 的矩阵,而我想要滑过的子矩阵是一个 10x10 的窗口图像矩阵。我想检查两个矩阵是否相等,我认为'isequal()' 函数是检查两个矩阵是否相等的更好选择。请帮忙。
问问题
674 次
2 回答
1
您可以使用conv2
或更一般地使用nlfilter
. 由于 Dan 已经建议conv2
,我将举另一个例子:
如果您的矩阵是M
并且窗口是w
10x10:
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 回答