主要内容

imgradientxy

找到二维图像的方向梯度

描述

例子

Gx孔侑) = imgradientxy (返回方向梯度,Gx孔侑灰度或二值图像的

例子

Gx孔侑) = imgradientxy (方法使用指定的参数返回方向梯度方法

例子

全部折叠

将图像读入工作区。

我= imread (“coins.png”);

计算x -y-方向梯度使用Prewitt梯度算子。

[Gx, Gy] = imgradientxy(I,“普瑞维特”);

显示方向梯度。

图imshowpair (Gx Gy,“蒙太奇”);标题(“方向梯度:x方向,Gx(左),y方向,Gy(右),使用Prewitt方法”

图中包含一个坐标轴。带有“方向梯度”标题的轴:x方向,Gx(左),y方向,Gy(右),使用Prewitt方法包含一个类型为image的对象。

将图像读入工作区。

我= 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)

数据类型:字符|字符串

输出参数

全部折叠

水平梯度,返回与图像大小相同的数字矩阵.水平(x)轴指向柱下标增加的方向。Gx的类,除非输入图像的类在这种情况下Gx的类

数据类型:|

垂直梯度,返回与图像大小相同的数字矩阵.垂直(y)轴指向行下标增加的方向。孔侑的类,除非输入图像的类在这种情况下孔侑的类

数据类型:|

提示

  • 当在图像边界处应用梯度运算符时,图像边界外的值被假定为与最近的图像边界值相等。

算法

算法方法是计算方向梯度x设在和y设在。的x轴是沿着向右的列定义的y-axis是沿着向下的行定义的。

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

扩展功能

介绍了R2012b