2010-07-15 16 views
5

tengo ninguna experiencia en visión por ordenador, pero yo tenía curiosidad por saber cómo podría utilizar la biblioteca OpenCV para lograr lo siguiente:Usando OpenCV para detectar botones de la ropa en un pedazo de papel

Tengo un tarro de botones de repuesto , surtidos en color, estilo y diámetro. En su mayor parte son circulares. Los esparcí uniformemente sobre un papel blanco y, con buena iluminación, tomo una imagen de bastante alta resolución con una cámara digital promedio. ¿Cómo podría cortar esta imagen para tomar cada botón individualmente como un objeto/imagen por separado?

Gracias de antemano.

Respuesta

4

dos maneras posibles:

1) Usando la corva círculo transforman Ejecuta alguna detector de bordes (Canny/Sobel) y luego el círculo transformada de Hough. Obtendrás los círculos.

2) Uso de los contornos Separe el botón y el fondo usando el umbral. ¡Detecta contornos en esta imagen con umbral y tienes los botones!

los artículos que podrían ayudar:

Aviso: Estos son enlaces a mi página web.

+0

muchas gracias por su respuesta, voy a probar estos métodos. – Karan

2

Creo que lo más simple que puede intentar es: ejecutar el detector de bordes Canny y aplicar una transformada Hough para detectar círculos y generar una imagen separada de cada uno de los círculos.

1

He estado haciendo un reconocimiento de platos y funcionó bastante bien. hacer esto:

Haga un poco de umbral (botones deben ser ojo morado de fondo) para dejar sólo los botones,

continuación cvFindContours

para cada contorno:

  • plazo cvFitEllipse, devolverá los dos ejes (a, b) de la elipse ajustada.
  • compruebe que el área de una elipse PI a b es similar al Área del contorno que utiliza cvContourArea y también que ambos ejes son similares a = b. (Esto dejará solo círculos)
  • luego puede hacer lo que necesite. printContour, utilizando cvPrintContour, utilice cvMinAreaRect2 para obtener cuadro delimitador botón, etc

transformada de Hough es también posible, pero es bastante más caro.

+0

muchas gracias por su respuesta, voy a probar estos métodos. – Karan

Cuestiones relacionadas