我正在尝试使用以下代码计算图像的渐变。
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);
请告诉我代码的含义: 过滤器2([1; 0; -1],温度)
答案 0 :(得分:0)
它基本上与图像temp
与 kernal [1;0;-1]
的2D卷积相同。这将在图像的各行中找到渐变。卷积将使核心滑过图像和每个像素。它将内核的中心放在感兴趣的像素上,然后将内核与它们重叠的图像进行元素相乘。对于你的内核,这将是你计算渐变的像素,它正好在它上面的像素和它正下方的像素。核心的中心为零,因此感兴趣的像素没有影响,发生的情况是你基本上从上面的像素中减去下面的像素。您为每个像素执行此操作。所以这是你的像素的两个邻居之间的差异,因此是渐变。