Main Content

imgradientxy

Encontrar gradientes direccionales de una imagen 2D

Descripción

ejemplo

[Gx,Gy] = imgradientxy(I) devuelve los gradientes direccionales Gx y Gy de la imagen en escala de grises o binaria I.

ejemplo

[Gx,Gy] = imgradientxy(I,method) devuelve los gradientes direccionales utilizando el method especificado.

Ejemplos

contraer todo

Lea una imagen en el espacio de trabajo.

I = imread('coins.png');

Calcule los gradientes en las direcciones x e y mediante el operador de gradiente de Prewitt.

[Gx, Gy] = imgradientxy(I,'prewitt');

Muestre los gradientes direccionales.

figure
imshowpair(Gx, Gy, 'montage');
title('Directional Gradients: x-direction, Gx (left), y-direction, Gy (right), using Prewitt method')

Figure contains an axes object. The axes object with title Directional Gradients: x-direction, Gx (left), y-direction, Gy (right), using Prewitt method contains an object of type image.

Lea una imagen en el espacio de trabajo.

I = imread('coins.png');

Calcule los gradientes en las direcciones x e y. De forma predeterminada, imgradientxy usa el operador de gradiente de Sobel.

[Gx,Gy] = imgradientxy(I);

Muestre los gradientes direccionales.

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

Figure contains an axes object. The axes object with title Directional Gradients Gx and Gy, Using Sobel Method contains an object of type image.

Calcule la magnitud y la dirección del gradiente utilizando los gradientes direccionales.

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

Muestre la magnitud y la dirección del gradiente.

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

Figure contains an axes object. The axes object with title Gradient Magnitude (Left) and Gradient Direction (Right) contains an object of type image.

Argumentos de entrada

contraer todo

La imagen de entrada, especificada como imagen 2D en escala de grises o imagen 2D binaria.

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

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

MétodoDescripción
'sobel'

Operador de gradiente de Sobel. El gradiente de un píxel es una suma ponderada de los píxeles en el entorno de 3 por 3. En la dirección vertical (y), las ponderaciones son:

[ 1  2  1 
  0  0  0 
 -1 -2 -1 ]
En la dirección x, las ponderaciones se trasponen.

'prewitt'

Operador de gradiente de Prewitt. El gradiente de un píxel es una suma ponderada de los píxeles en el entorno de 3 por 3. En la dirección vertical (y), las ponderaciones son:

[ 1  1  1 
  0  0  0 
 -1 -1 -1 ]
En la dirección x, las ponderaciones se trasponen.

'central'

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

'intermediate'

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

Tipos de datos: char | string

Argumentos de salida

contraer todo

Gradiente horizontal, devuelto como matriz numérica del mismo tamaño que la imagen I. El eje horizontal (x) apunta en la dirección de los subíndices crecientes de las columnas. Gx es de tipo de datos double, a menos que la imagen de entrada I sea de tipo de datos single, en cuyo caso Gx es del tipo de datos single.

Tipos de datos: single | double

Gradiente vertical, devuelto como matriz numérica del mismo tamaño que la imagen I. El eje horizontal (y) apunta en la dirección de los subíndices crecientes de las filas. Gy es de tipo de datos double, a menos que la imagen de entrada I sea de tipo de datos single, en cuyo caso Gy es del tipo de datos single.

Tipos de datos: single | double

Sugerencias

  • Al aplicar el operador de gradiente a los límites de la imagen, se asume que los valores que se encuentran fuera de los límites de la imagen son iguales que el valor de borde más cercano de la imagen.

Algoritmos

El enfoque algorítmico es calcular los gradientes direccionales con respecto al eje x y el eje y. El eje x se define en las columnas hacia la derecha y el eje y se define en las filas hacia abajo.

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

Capacidades ampliadas

Historial de versiones

Introducido en R2012b

expandir todo