图像处理中梯度详解 及gradient()函数
图像在计算机中以数字图像的形式存储,即以数值矩阵的形式存在,形成了离散的数值信号,在此基础上,对于图像处理中的数值的多样性计算分析也影响着初步图像分析。
图像梯度的定义:
图像函数f(x,y)在点(x,y)的梯度是一个具有大小和方向的矢量,设为Gx 和 Gy 分别表示x方向和y方向的梯度,这个梯度的矢量可以表示为:
图像梯度: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);
Img(i,j)是图像数值矩阵的像素值,(i,j)为像素相应坐标。
Gradient(Img)函数求的是数值上的梯度,假设Img为图片数值矩阵.
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。