1、梯度提取原理
图像梯度:G(x,y)=dx i +dy j;
dx(i,j)=Img(i+1,j)-Img(i,j);
dy(i,j)=Img(i,j+1)-I(i,j);
2、matlab 原有梯度函数
[Rx,Ry]=gradient(Img);
(1)水平方向梯度Rx,Rx的第一列元素为原矩阵第二列与第一列元素之差,Rx的第二列元素为原矩阵第三列与第一列元素之差除以2,以此类推:Fx(i,j)=(F(i,j+1)-F(i,j-1))/2。最后一列则为最后两列之差。
(2)垂直方向梯度Ry,同理,可以得到Fy
3、四个不同方向的梯度
ima=double(rgb2gray(uint8(result1)));
[m,n]=size(ima);
for i=2:m-1
for j=2:n-1
dy(i,j)=0.5*(ima(i+1,j)-ima(i-1,j));
dx(i,j)=0.5*(ima(i,j+1)-ima(i,j-1));
d_45(i,j)=0.5*(ima(i+1,j+1)-ima(i-1,j-1));
d__45(i,j)=0.5*(ima(i+1,j-1)-ima(i-1,j+1));
end
end
记录以供交流