文档

无梯度

图像的梯度大小和方向

语法

[Gmag, Gdir] = imgradient(我)
[Gmag, Gdir] = imgradient(我的方法)
[gpuarrayGmag,gpuarrayGdir]=imgradient(gpuarrayI,___)
[Gmag, Gdir] = imgradient (Gx Gy)
[gpuarrayGmag,gpuarrayGdir]=imgradient(gpuarrayGx,gpuarrayGy)

描述

[Gmag,Gdir]=无梯度()返回梯度大小,Gmag,梯度方向,Gdir,用于灰度或二值图像

实例

[Gmag,Gdir]=无梯度(,方法)使用指定的值返回渐变大小和方向方法

实例

[gpuarrayGmag,gpuarrayGdir]=无梯度(gpuarrayI,___)在GPU上执行该操作。输入图像和返回值为GPuarray。此语法需要并行计算工具箱™.

实例

[Gmag,Gdir]=无梯度(Gx,Gy)使用沿方向的方向渐变返回渐变大小和方向x-轴心国,Gx,以及Y-轴心国,Gy,例如梯度.的x-轴指向列下标增加的方向Y-轴指向增加行下标的方向。

实例

[gpuarrayGmag,gpuarrayGdir]=无梯度(gpuarrayGx,gpuarrayGy)在GPU上执行操作。输入xY渐变和返回值是gpuarray。此语法需要并行计算工具箱。

例子

全部折叠

将图像读入工作区。

I=imread(“coins.png”);

指定Prewitt渐变操作符,计算渐变大小和方向。

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

显示梯度大小和方向。

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

读取图像并使用Prewitt梯度算子计算梯度大小和梯度方向。

读取图像。

I=gpuArray(imread(“coins.png”));imshow(I)

计算梯度和显示。

[Gmag, Gdir] = imgradient(I,“普瑞维特”);图,imshow(Gmag,[]),标题(“梯度大小”)图,imshow(Gdir,[]),标题(的梯度方向)

将图像读入工作区。

I=imread(“coins.png”);

计算x- - -y-方向梯度,默认使用Sobel梯度运算符。

[Gx, Gy] = imgradientxy(I);

显示方向渐变。

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

使用方向渐变计算渐变大小和方向。

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

显示梯度大小和方向。

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


                   

读取图像并返回方向梯度,GxGy,以及梯度大小和方向,GmagGdir,利用默认的Sobel梯度算子。

读取图像。

I=gpuArray(imread(“coins.png”))

计算并显示渐变。请注意,当您将gpuArray指定为梯度,它返回GxGygpuArrays。结果与前面的示例相同。

[Gx, Gy] = imgradientxy(I);[Gmag, Gdir] = imgradient(Gx, Gy);图,imshow(Gmag,[]),标题(“梯度大小”)图,imshow(Gdir,[]),标题(的梯度方向(Gx, []), title(“方向梯度:X轴”)图,imshow(Gy,[]),标题('方向渐变:Y轴')

输入参数

全部折叠

输入图像,指定为灰度或二值图像,即必须是非稀疏的数字或逻辑二维矩阵。

数据类型:仅有一个的|双重的|int8|int32|uint8|uint16|uint32|必然的

输入图像,指定为二维灰度或二进制gpuArray图像。

数据类型:仅有一个的|双重的|int8|int32|uint8|uint16|uint32|必然的

渐变运算符,指定为以下值之一。

方法 描述
“索贝尔” Sobel梯度算子(默认)
“普瑞维特” Prewitt梯度算子
“中央”

中心差梯度:dI/dx=(I(x+1)-I(x-1))/2

“中间”

中间梯度差异:dI/dx=I(x+1)-I(x)

“罗伯特” 罗伯茨梯度算子

数据类型:字符

方向梯度x-轴(水平),指定为与图像大小相等的非稀疏矩阵,通常由梯度

数据类型:仅有一个的|双重的|int8|int32|uint8|uint16|uint32

方向梯度Y-axis(垂直),指定为与图像大小相等的非稀疏矩阵,通常由梯度

数据类型:仅有一个的|双重的|int8|int32|uint8|uint16|uint32

方向梯度x-axis,指定为gpuArray,通常返回梯度

数据类型:仅有一个的|双重的|int8|int32|uint8|uint16|uint32

方向梯度Y-axis,指定为gpuArray,通常返回梯度

数据类型:仅有一个的|双重的|int8|int32|uint8|uint16|uint32

输出参数

全部折叠

梯度大小,作为与图像大小相同的非稀疏矩阵返回Gmag的类双重的,除非输入图像的类仅有一个的在这种情况下,它是有阶级的仅有一个的

数据类型:双重的|仅有一个的

梯度大小,作为与图像大小相同的非稀疏gpuArray返回Gmag的类双重的,除非输入图像的类仅有一个的在这种情况下,它是有阶级的仅有一个的

数据类型:双重的|仅有一个的

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

GxGy这些都是射线,Gdir是一个gpuArray。

数据类型:双重的|仅有一个的

渐变方向,以与图像大小相同的非解析gpuArray返回Gdir包含从正方向逆时针方向测量的范围[-180 -180]范围内的角度x设在。(x-轴指向增加列下标的方向。)Gdir是双精度类,除非输入图像是单类的,在这种情况下,它是单类的。

数据类型:双重的|仅有一个的

提示

  • 在图像边界处应用梯度算子时,假设图像边界以外的值等于最近的图像边界值“复制”中的边界选项imfilter

算法

采用的算法方法无梯度对于每个列出的梯度方法,首先要计算方向梯度,GxGy,就x设在和Y设在。的x轴是沿着向右的列定义的Y-axis是沿着向下的行定义的。然后从它们的正交分量计算出梯度的大小和方向GxGy

无梯度如果梯度输出图像的范围必须与输入图像的范围匹配,则考虑梯度图像的归一化,这取决于方法例如,对于Sobel内核,规范化因子是1/8,对于Prewitt,它是1/6,对于Roberts,它是1/2。

介绍了R2012b

这个话题有用吗?