Intento detectar rectángulos en las imágenes. El fondo de las imágenes es de un color (la mayoría de las veces). Intenté dos métodos para obtener una imagen binaria (1 = fondo, 0 = bordes), para hacer una Transformación Hough más adelante ...
Filtro Sobel o Canny
Imagen suave A, Crear imagen de diferencia A - gauss, Crear imagen binaria con umbral (Crear histograma, el bin más alto debe ser de fondo ...)
El resultado es una imagen binaria con bordes. Realmente no sé qué método funciona mejor para una variedad de imágenes diferentes. ¿Algunas ideas?
image-processing
Martin Thompson
fuente
fuente
Respuestas:
Una vez escribí una aplicación para la detección de rectángulos. Utilizó la detección de bordes Sobel y la transformación de línea Hough.
En lugar de buscar picos individuales en la imagen de Hough (líneas), el programa buscó 4 picos con una distancia de 90 grados entre ellos.
Para cada columna en la imagen de Hough (correspondiente a algún ángulo), se buscaron en otras tres columnas los máximos locales. Cuando se encontró un pico satisfactorio en cada una de las cuatro columnas, se detectó el rectángulo.
El programa construyó el rectángulo e hizo verificaciones adicionales para la consistencia del color dentro y fuera del rectángulo para discriminar falsos positivos. El programa fue para detectar la colocación de papel en hojas de papel escaneadas.
fuente
Es posible que el detector de bordes laplaciano de Gauss sea una mejor opción. Debería darle contornos cerrados con más frecuencia que el detector de bordes Canny. Creo que eso es lo que desea, ya que su próximo paso es aplicar la transformación Hough.
fuente
Puede ser útil para usted, pero es demasiado tarde cuando visito este sitio hoy
fuente
Si su imagen es relativamente limpia, tiene rectángulos obvios sin muchos cortes, la alternativa a una transformación Hough es crear contornos y reducirlos hasta que formen un contorno de 4 lados = su rectángulo.
Hay muestras de opencv para hacer esto
fuente
Tutorial de Python para encontrar rectángulos Escrito desde cero. Utiliza líneas Canny y Hough.
fuente