10

Tengo un conocimiento básico sobre el procesamiento de imágenes y ahora estoy estudiando en profundidad el libro "Procesamiento digital de imágenes" de Gonzales.Detección de un objeto en la imagen según la forma geométrica

Cuando se conoce la forma aproximada del objeto de interés y la imagen dada (por ejemplo, círculo, triángulo), ¿cuál es el mejor algoritmo/método para encontrar este objeto en la imagen?

El objeto puede estar ligeramente deformado, por lo que el enfoque de fuerza bruta no ayudará.

Respuesta

5

Te recomiendo que uses la transformada Hough, que te permite encontrar cualquier patrón dado descrito por una ecuación. Además, la transformada Hough funciona también para objetos deformados.

El algoritmo y la implementación en sí es bastante simple. Más detalles se pueden encontrar aquí: http://en.wikipedia.org/wiki/Hough_transform, incluso un código fuente para este algoritmo se incluye en una página referenciada (http://www.rob.cs.tu-bs.de/content/04-teaching/06-interactive/HNF.html).

Espero que eso te ayude.

+0

Hough transform es un poco de fuerza bruta, como notará. Funciona para líneas, tal vez círculos. Sin embargo, el espacio Hough explota con formas con más parámetros. – Ivan

3

me gustaría ver el problema en dos pasos:

  • primera encontrar límite exterior de su objeto: Estoy suponiendo que haya contraste suficiente de imágenes, que puede fácilmente umbral para obtener un binario imagen de tu objeto. Debe extraer el código de cadena del límite del objeto.

  • continuación analizar la forma de la frontera para deducir la forma (círculo, polígono, ...): Usted puede calcular la curvatura en cada punto de la cadena de límite y así determinar cuántos ángulos agudos (es decir, alta curvatura valor) hay en su forma. Varios ángulos agudos significan que tienes un polígono, ninguno significa que tienes un círculo (curvatura constante).

Puede encontrar una descripción sobre cómo conseguir límite de su objeto a partir de la imagen binaria y formas de analizar en Gonzalez's Digital Image Processing, chapter 11.

También encontré este insightful presentation on binary image analyis (PPT) y un matlab script que implementa algunas de las técnicas de las que González habla en DIP.

+0

Me di cuenta de que estaba respondiendo una pregunta diferente de lo que se le preguntó. Sin embargo, aún puede intentar buscar objetos de esta manera y solo retener los formularios que está buscando. – Ivan

1

Le recomiendo que use OpenCV, es una gran biblioteca de visión por computadora que lo ayuda mucho con todo lo relacionado con la visión artificial. Su sitio web no es realmente atractivo ni útil, pero el API es realmente poderoso.

Un libro que me ayudó mucho ya que no hay una gran cantidad de documentación en la web es Learning OpenCV. La documentación que viene con la API es buena, pero no excelente para aprender a usarla.

En relación con su problema, puede usar un detector Canny Edge para encontrar el borde de su elemento y luego analizarlo, o puede continuar con Hough transform para buscar líneas o círculos.

1

puede probar especialmente 'reconocimiento de rostros'.Porque, sabes que es un tema específico. Por otro lado, "detección de rostros", etc. EmguCV puede ser útil para usted. Es envoltorio .Net para la biblioteca de procesamiento de imágenes Intel OpenCV.

1

Parece que el profesor Jean Rouat de la Universidad de Sherbooke, ha encontrado una forma de encontrar objetos en las imágenes mediante el procesamiento de la red neuronal de picos neutros. Su nombre de tecnología RN-SPIKES, parece estar disponible para la concesión de licencias.

Cuestiones relacionadas