主要内容

imgradient

求二维图像的梯度大小和方向

描述

GmagGdir) = imgradient (返回梯度大小,Gmag,梯度方向,Gdir的二维灰度或二值图像

例子

GmagGdir) = imgradient (方法返回指定的梯度大小和方向方法

例子

GmagGdir) = imgradient (Gx孔侑从方向梯度返回梯度大小和方向Gx孔侑xy方向,分别。

例子

全部折叠

将图像读入工作区。

我= imread (“coins.png”);

计算梯度大小和方向,指定Prewitt梯度算子。

[Gmag, Gdir] = imgradient(I,“普瑞维特”);

显示梯度大小和方向。

图imshowpair (Gmag Gdir,“蒙太奇”);标题(“梯度大小,Gmag(左)和梯度方向,Gdir(右),使用Prewitt方法”

图中包含一个轴对象。轴对象的标题梯度大小,Gmag(左)和梯度方向,Gdir(右),使用Prewitt方法包含类型为图像的对象。

将图像读入工作区。

我= imread (“coins.png”);

计算x- - -y -方向梯度。默认情况下,imgradientxy使用Sobel梯度算子。

(Gx, Gy) = imgradientxy(我);

显示方向梯度。

imshowpair (Gx Gy,“蒙太奇”)标题(“方向梯度Gx和Gy,使用Sobel方法”

图中包含一个轴对象。标题为“方向梯度Gx和Gy,使用Sobel方法”的轴对象包含一个类型为image的对象。

使用方向梯度计算梯度大小和方向。

[Gmag, Gdir] = imgradient (Gx Gy);

显示梯度大小和方向。

imshowpair (Gmag Gdir,“蒙太奇”)标题(“梯度大小(左)及梯度方向(右)”

图中包含一个轴对象。标题为“梯度大小(左)和梯度方向(右)”的轴对象包含一个类型为图像的对象。

输入参数

全部折叠

输入图像,指定为二维灰度或二维二值图像。

数据类型:||int8|int32|uint8|uint16|uint32|逻辑

梯度运算符,指定为下列值之一。

方法 描述
“索贝尔”

Sobel梯度算子。像素的梯度是3 × 3邻域像素的加权和。垂直方向的梯度(y),则权重为:

[1 2 1 0 0 0 -1 -2 -1]
x方向,权值转置。

“普瑞维特”

普瑞维特梯度算子。像素的梯度是3 × 3邻域像素的加权和。垂直方向的梯度(y),则权重为:

[1 1 1 0 0 0 1 -1 -1]
x方向,权值转置。

“中央”

中心差分梯度。像素的梯度是相邻像素的加权差。在y方向,dI/dy = I(y+1) - I(y-1) /2

“中间”

中间梯度差异。像素的梯度是相邻像素和当前像素之间的差值。在y方向,dI/dy = I(y+1) - I(y)

“罗伯特”

罗伯茨梯度算子。像素的梯度是对角线上相邻像素之间的差值。对于一个方向的梯度,权重为:

[1 0 0 -1]
在正交方向上,权值沿垂直轴翻转。

数据类型:字符|字符串

水平梯度,指定为数字矩阵。水平(x)轴指向柱下标增加的方向。你可以使用imgradientxy函数来计算Gx

数据类型:||int8|int32|uint8|uint16|uint32

垂直梯度,指定为与之大小相同的数字矩阵Gx.垂直(y)轴指向行下标增加的方向。你可以使用imgradientxy函数来计算孔侑

数据类型:||int8|int32|uint8|uint16|uint32

输出参数

全部折叠

梯度大小,返回为与图像大小相同的数值矩阵或者方向梯度Gx孔侑Gmag的类,除非输入的图像或方向梯度是数据类型的,在这种情况下,它是数据类型

数据类型:|

梯度方向,返回与梯度大小相同的数值矩阵GmagGdir包含从正方向逆时针方向测量的范围[- 180,180]范围内的角度x设在。(x-axis指向列下标增加的方向。)Gdir的类,除非输入图像或方向梯度是数据类型,在这种情况下,它是数据类型

数据类型:|

提示

  • 当在图像边界处应用梯度运算符时,图像边界外的值被假定为与最近的图像边界值相等。这和“复制”边界选项imfilter

算法

采用的算法方法imgradient对于每个列出的梯度方法,首先要计算方向梯度,Gx孔侑,在xy方向,分别。水平(x)轴指向柱下标增加的方向。垂直(y)轴指向行下标增加的方向。然后从它们的正交分量计算出梯度的大小和方向Gx孔侑

imgradient不归一化梯度输出。如果梯度输出图像的范围必须匹配输入图像的范围,考虑对梯度图像进行归一化,取决于方法参数使用。例如,对于Sobel核,归一化因子是1/8,对于Prewitt是1/6,对于Roberts是1/2。

扩展功能

介绍了R2012b