filter2([1; 0; -1],temp)在查找图像渐变时的含义是什么?

时间:2014-01-09 08:48:43

标签: 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);
Fy=Fy(3:hcol,3:hrow);

请告诉我代码的含义:     过滤器2([1; 0; -1],温度)

1 个答案:

答案 0 :(得分:0)

它基本上与图像temp kernal [1;0;-1]的2D卷积相同。这将在图像的各行中找到渐变。卷积将使核心滑过图像和每个像素。它将内核的中心放在感兴趣的像素上,然后将内核与它们重叠的图像进行元素相乘。对于你的内核,这将是你计算渐变的像素,它正好在它上面的像素和它正下方的像素。核心的中心为零,因此感兴趣的像素没有影响,发生的情况是你基本上从上面的像素中减去下面的像素。您为每个像素执行此操作。所以这是你的像素的两个邻居之间的差异,因此是渐变。