Esta página aún no se ha traducido para esta versión. Puede ver la versión más reciente de esta página en inglés.

imgradient

La magnitud del degradado y la dirección de una imagen

Descripción

[Gmag,Gdir] = imgradient(I) Devuelve la magnitud del degradado, y la dirección del degradado, de la imagen en escala de grises o binaria en 2-D.GmagGdirI

Opcionalmente, puede calcular la magnitud y la dirección del degradado usando una GPU (requiere).Parallel Computing Toolbox™ Para obtener más información, consulte.Procesamiento de imágenes en una GPU

ejemplo

[Gmag,Gdir] = imgradient(I,method) Devuelve la magnitud y la dirección del degradado utilizando el valor especificado.method

ejemplo

[Gmag,Gdir] = imgradient(Gx,Gy) Devuelve la magnitud y la dirección del degradado desde los degradados direccionales y en las direcciones, respectivamente.GxGyxy

Ejemplos

contraer todo

Leer una imagen en el espacio de trabajo.

I = imread('coins.png');

Calcule la magnitud y la dirección del degradado, especificando el operador de degradado Prewitt.

[Gmag, Gdir] = imgradient(I,'prewitt');

Muestra la magnitud y la dirección del degradado.

figure imshowpair(Gmag, Gdir, 'montage'); title('Gradient Magnitude, Gmag (left), and Gradient Direction, Gdir (right), using Prewitt method')

Leer una imagen en el espacio de trabajo.

I = imread('coins.png');

Calcule los gradientes direccionales.xy- De forma predeterminada, utiliza el operador de degradado Sobel.imgradientxy

[Gx,Gy] = imgradientxy(I);

Visualice los degradados direccionales.

imshowpair(Gx,Gy,'montage') title('Directional Gradients Gx and Gy, Using Sobel Method')

Calcule la magnitud y la dirección del degradado utilizando los degradados direccionales.

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

Muestra la magnitud y la dirección del degradado.

imshowpair(Gmag,Gdir,'montage') title('Gradient Magnitude (Left) and Gradient Direction (Right)')

Argumentos de entrada

contraer todo

Imagen de entrada, especificada como una imagen binaria en 2-D en escala de grises o 2-D.

Tipos de datos: single | double | int8 | int32 | uint8 | uint16 | uint32 | logical

Operador de degradado, especificado como uno de los siguientes valores.

MétodoDescripción
'sobel'

Sobel operador de gradiente. El degradado de un píxel es una suma ponderada de píxeles en la vecindad 3 por 3. Para los degradados en la dirección vertical (), las ponderaciones son: en la dirección, las ponderaciones se transponen.y

[ 1  2  1    0  0  0   -1 -2 -1 ]
x

'prewitt'

Operador de gradiente Prewitt. El degradado de un píxel es una suma ponderada de píxeles en la vecindad 3 por 3. Para los degradados en la dirección vertical (), las ponderaciones son: en la dirección, las ponderaciones se transponen.y

[ 1  1  1    0  0  0   -1 -1 -1 ]
x

'central'

Gradiente de diferencia central. El degradado de un píxel es una diferencia ponderada de los píxeles vecinos. En la dirección,.ydI/dy = (I(y+1) - I(y-1))/2

'intermediate'

Gradiente de diferencia intermedia. El degradado de un píxel es la diferencia entre un píxel adyacente y el píxel actual. En la dirección,.ydI/dy = I(y+1) - I(y)

'roberts'

Operador de gradiente Roberts. El degradado de un píxel es la diferencia entre los píxeles adyacentes diagonalmente. Para los degradados en una dirección, los pesos son: En la dirección ortogonal, las ponderaciones se voltean a lo largo del eje vertical.

[ 1  0    0 -1 ]

Tipos de datos: char | string

Degradado horizontal, especificado como una matriz numérica. El eje horizontal () apunta en la dirección de aumento de subvalores de columna.x Puede utilizar la función para calcular.imgradientxyGx

Tipos de datos: single | double | int8 | int32 | uint8 | uint16 | uint32

Degradado vertical, especificado como una matriz numérica del mismo tamaño que.Gx El eje vertical () apunta en la dirección de aumento de subvalores de fila.y Puede utilizar la función para calcular.imgradientxyGy

Tipos de datos: single | double | int8 | int32 | uint8 | uint16 | uint32

Argumentos de salida

contraer todo

Magnitud del degradado, devuelta como una matriz numérica del mismo tamaño que la imagen o los degradados direccionales y. es de clase, a menos que la imagen de entrada o los degradados direccionales sean de clase, en cuyo caso es de clase.IGxGyGmagdoublesinglesingle

Tipos de datos: double | single

Dirección de degradado, devuelta como una matriz numérica del mismo tamaño que la magnitud del degradado. contiene ángulos en grados dentro del rango [-180, 180] medidos en sentido antihorario desde el eje positivo.GmagGdirx (El-eje apunta en la dirección de aumento de subvalores de columna.) es de clase, a menos que la imagen de entrada o los degradados direccionales sean de clase, en cuyo caso es de clase.xGdirdoubleIsinglesingle

Tipos de datos: double | single

Sugerencias

  • Al aplicar el operador de degradado en los límites de la imagen, se supone que los valores fuera de los límites de la imagen equivalen al valor del borde de la imagen más cercano. Esto es similar a la opción de contorno en.'replicate'imfilter

Algoritmos

El enfoque algorítmico adoptado para cada uno de los métodos de degradado enumerados consiste en calcular primero los degradados direccionales y, en las direcciones, respectivamente.imgradientGxGyxy El eje horizontal () apunta en la dirección de aumento de subvalores de columna.x El eje vertical () apunta en la dirección de aumento de subvalores de fila.y La magnitud y la dirección del degradado se calculan a partir de sus componentes ortogonales y.GxGy

no normaliza la salida de degradado.imgradient Si el rango de la imagen de salida de degradado tiene que coincidir con el rango de la imagen de entrada, considere la posibilidad de normalizar la imagen de degradado, según el argumento utilizado.method Por ejemplo, con un núcleo Sobel, el factor de normalización es 1/8, para Prewitt, es 1/6, y para Roberts es 1/2.

Capacidades ampliadas

Introducido en R2012b