[Notas de estudio de VTK-09] Detección de bordes de imágenes (operador de gradiente, operador Canny, operador laplaciano)

Tutorial de aprendizaje: "Desarrollo de imágenes y gráficos VTK avanzados" Zhang Xiaodong, Luo Huoling
Agradecimiento especial: Dongling Studio

5.4 Detección de bordes

Los valores de gris discontinuos en la imagen producirán bordes, y la detección de bordes de la imagen es la base del método de segmentación de imágenes basado en límites.El degradado en realidad refleja la información del borde de la imagen.. Los bordes de la imagen son comúnmente detectados por la primera y segunda derivada de la imagen.

5.4.1 Operador de gradiente

El operador de gradiente corresponde a la primera derivada de la imagen. La primera derivada de la imagen generalmente se aproxima mediante operaciones de diferencias. Dado que la imagen de degradado es un vector y no se puede mostrar directamente, es necesario calcular el tamaño del degradado y la norma 2 de cada píxel de la imagen, que es el módulo del vector.

Al calcular el gradiente, se utiliza el método de diferencia intermedia, es decir, la diferencia de píxeles en cada dirección es la diferencia entre los dos valores de píxeles antes y después. La clase vtkImageGradient define internamente una variable HandleBoundaries, que determina si se calcula el gradiente de píxeles del límite.

Nota: Las imágenes en color no se pueden usar directamente para calcular gradientes y primero deben convertirse a imágenes en escala de grises.

El operador de Sobel también es un operador de gradiente de uso común. Utiliza una plantilla de 3×3 para moverse sobre la imagen y calcula el valor del gradiente correspondiente al píxel central en cada posición.

Proceso:
1. Utilice el operador Sobel para calcular la imagen de gradiente de la imagen
2. Extraiga el componente de gradiente en la dirección X y el componente de gradiente en la dirección Y
3. Dado que el valor calculado del operador Sobel puede ser un valor negativo, el valor absoluto de cada imagen componente se calcula
4. Ajuste el rango de valores de la imagen a [0, 255] mediante vtkImageShiftScale antes de mostrarla.

5.4.2 Operador astuto

Pasos de cálculo:
1. Elimine el ruido de la imagen original (suavizado gaussiano)
2. Calcule el gradiente de cada píxel de la imagen y calcule el valor y la dirección del módulo (método de diferencia)
3. Realice una "supresión no máxima" en el gradiente. El valor de gradiente de los puntos de borde de la imagen suele ser un valor máximo en la dirección del gradiente, por lo que la detección de bordes requiere asignar valores no máximos a 0 para suprimir los puntos que no son de borde.
4. El método de doble umbral detecta bordes y conecta bordes. Tome dos umbrales de gradiente alto y bajo.
Asigne los píxeles más pequeños que los altos en la imagen de degradado a 0 para obtener la imagen del borde L1, que puede estar cerca del borde de la imagen pero puede tener discontinuidades.
Asigne 0 a los píxeles inferiores a los inferiores en la imagen de degradado para obtener la imagen de borde L2. Esta imagen se ve muy afectada por el ruido, pero tiene más información de borde.
Al conectar bordes, L1 se utiliza como base para realizar el seguimiento de bordes en puntos distintos de cero. Si hay una interrupción durante el proceso de seguimiento, los bordes que se pueden conectar se encuentran desde los píxeles correspondientes en L2 y sus vecindarios hasta el final.

5.4.3 Operador laplaciano

El operador laplaciano es un operador de borde de segundo orden, que es la divergencia del gradiente. También se implementa mediante plantillas.

El operador laplaciano calcula la segunda derivada de la imagen y es sensible al ruido de la imagen. El resultado del operador laplaciano es un escalar que representa el ancho del borde. Sin embargo, a menudo produce bordes de doble píxel de ancho y no puede proporcionar información de dirección, por lo que se utiliza menos directamente para la detección de bordes.

Supongo que te gusta

Origin blog.csdn.net/m0_51141265/article/details/132915549
Recomendado
Clasificación