Matlab filter2([1;0;-1],temp)在查找图像梯度时的意义是什么?

Matlab filter2([1;0;-1],temp)在查找图像梯度时的意义是什么?,matlab,Matlab,我试图用下面的代码计算图像的梯度 function [Fx,Fy]=myGradient(I) %correctig gradient on edges I=imadjust(I); [hcol,hrow]=size(I); temp= ones(hcol+2,hrow+2); temp(2:1+hcol,2:1+hrow)=I(:,:); Fx=filter2([1;0;-1],temp); Fx=Fx(3:hcol,3:hrow); Fy=filter2([1;0;-1]',temp);

我试图用下面的代码计算图像的梯度

function [Fx,Fy]=myGradient(I)
%correctig gradient on edges
I=imadjust(I);
[hcol,hrow]=size(I);
temp= ones(hcol+2,hrow+2);
temp(2:1+hcol,2:1+hrow)=I(:,:);

Fx=filter2([1;0;-1],temp);
Fx=Fx(3:hcol,3:hrow);
Fy=filter2([1;0;-1]',temp);
Fy=Fy(3:hcol,3:hrow);
你能告诉我代码的含义吗:
filter2([1;0;-1],temp)

它基本上与图像
temp
与内核
[1;0;-1]
的二维卷积相同。这将找到图像行中的渐变。卷积将在图像和每个像素上滑动内核。它将核的中心放在感兴趣的像素上,然后将核与重叠的图像进行元素相乘。对于你的内核,这将是你正在计算梯度的像素,它正上方的像素和它正下方的像素。内核的中心是零,所以感兴趣的像素没有效果,发生的事情基本上是从上面的像素减去下面的像素。对每个像素执行此操作。这就是像素的两个相邻点之间的差异,也就是梯度

很好的解释。我认为,
filter2
实现相关,而不是卷积。对于这种情况,没关系。。。