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.

gradientweight

Calcular pesos para píxeles de imagen basados en gradiente de imagen

Sintaxis

W = gradientweight(I)
W = gradientweight(I,sigma)
W = gradientweight(___,Name,Value)

Descripción

W = gradientweight(I) calcula el peso de píxel de cada píxel en I de imagen basándose en la magnitud de gradiente en ese píxel y devuelve el Wde matriz de peso. El peso de un píxel está inversamente relacionado con los valores de degradado en la ubicación del píxel. Los píxeles con una pequeña magnitud de gradiente (regiones lisas) tienen un peso grande y los píxeles con gran magnitud de gradiente (como en los bordes) tienen un peso pequeño.

W = gradientweight(I,sigma) utiliza sigma como la desviación estándar para la derivada de Gauss que se utiliza para calcular el gradiente de imagen.

ejemplo

W = gradientweight(___,Name,Value) Devuelve el array de peso W usando pares nombre-valor para controlar aspectos del cálculo de peso.

Ejemplos

contraer todo

En este ejemplo se segmenta una imagen mediante el método de marcha rápida basándose en los pesos derivados del degradado de la imagen.

Leer la imagen y mostrarla.

I = imread('coins.png'); imshow(I) title('Original Image')

Calcule los pesos basándose en el gradiente de imagen.

sigma = 1.5; W = gradientweight(I, sigma, 'RolloffFactor', 3, 'WeightCutoff', 0.25);

Seleccione una ubicación de la semilla.

R = 70; C = 216; hold on;  plot(C, R, 'r.', 'LineWidth', 1.5, 'MarkerSize',15); title('Original Image with Seed Location')

Segmentar la imagen usando el array weight.

thresh = 0.1; [BW, D] = imsegfmm(W, C, R, thresh); figure, imshow(BW) title('Segmented Image') hold on;  plot(C, R, 'r.', 'LineWidth', 1.5, 'MarkerSize',15);

La matriz de distancia geodésica D puede ser umbral usando diferentes umbrales para obtener diferentes resultados de segmentación.

figure, imshow(D) title('Geodesic Distances') hold on;  plot(C, R, 'r.', 'LineWidth', 1.5, 'MarkerSize',15);

Argumentos de entrada

contraer todo

Imagen de entrada, especificada como imagen en escala de grises. Debe ser no Sparse.

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

Desviación estándar para el derivado de Gauss, especificado como escalar positivo de la clase double.

Ejemplo: sigma = 1.0; W = gradientweight(I, sigma)

Tipos de datos: double

Argumentos de par nombre-valor

Especifique pares opcionales separados por comas de argumentos Name,Value . Name es el nombre del argumento y Value es el valor correspondiente. Name debe aparecer dentro de comillas simples (' '). Puede especificar varios argumentos de par de nombre y valor en cualquier orden como Name1,Value1,...,NameN,ValueN.

Ejemplo: W = gradientweight(I,1.5,'RolloffFactor',3,'WeightCutoff',0.25);

Factor de desplazamiento de peso de salida, especificado como el par separado por comas consistente en 'RolloffFactor' y un escalar positivo de la clase double. Controla la rapidez con que los valores de peso caen en función de la magnitud del gradiente. Cuando se ve como una gráfica en 2-D, los valores de intensidad de píxeles pueden variar gradualmente en los bordes de las regiones, creando una pendiente suave. En la imagen segmentada, es posible que desee que el borde esté más bien definido. Utilizando el factor roll-off, usted controla la pendiente de la curva de valor de peso en los puntos donde los valores de intensidad empiezan a cambiar. Si especifica un valor alto, los valores de peso de salida caen bruscamente alrededor de los bordes de regiones lisas. Si se especifica un valor bajo, el peso de salida tiene una caída más gradual alrededor de los bordes. El rango sugerido para este parámetro es [0.5 4].

Tipos de datos: double

Umbral para valores de peso, especificado como el par separado por comas consistente en 'WeightCutoff' y un escalar positivo de la clase double. Si utiliza este parámetro para establecer un umbral en valores de peso, suprime cualquier valor de peso menor que el que especifique, estableciendo estos píxeles en un valor constante pequeño (1E-3). Este parámetro puede ser útil en la mejora de la exactitud de la salida cuando usted utiliza el arsenal del peso de la salida W como entrada a la función rápida de la segmentación del método de marcha, imsegfmm.

Tipos de datos: double

Argumentos de salida

contraer todo

Array de peso, devuelto como un array numérico. La matriz de peso es del mismo tamaño que la imagen de entrada, I. La matriz de peso es de clase double, a menos que I sea single, en cuyo caso es de clase single.

Sugerencias

  • gradientweight utiliza operaciones de punto flotante de precisión doble para cálculos internos para todas las clases de I, excepto cuando I es de clase single, en cuyo caso gradientweight utiliza operaciones de punto flotante de precisión única internamente.

Consulte también

|

Introducido en R2014b