2010-07-15 9 views
5

ho alcun background in computer vision, ma ero curioso di sapere come avrei potuto usare libreria OpenCV per raggiungere i seguenti obiettivi:Utilizzando OpenCV per rilevare abbigliamento pulsanti su un pezzo di carta

Ho un barattolo di bottoni di riserva , assortiti per colore, stile e diametro. Per la maggior parte sono circolari. Li spargo uniformemente su un foglio di carta bianca e, con una buona illuminazione, scatta una foto ad alta risoluzione con la tua fotocamera digitale media. Come potrei ottenere tagliando questa immagine per afferrare ogni pulsante individualmente come oggetto/immagine separata?

Grazie in anticipo.

risposta

4

due modi possibili:

1) con il cerchio trasformata di Hough Si esegue qualche rilevatore bordo (Canny/Sobel) e poi il cerchio trasformata di Hough. Otterrai le cerchie.

2) Utilizzo dei contorni Separare il pulsante e lo sfondo utilizzando la soglia. Rileva i contorni in questa immagine con soglia e hai i pulsanti!

articoli che potrebbero aiutare:

Disclaimer: Questi sono i link al mio sito web.

+0

grazie mille per la tua risposta, proverò questi metodi. – Karan

2

Penso che la cosa più semplice che si possa provare sia: lanciare il rivelatore di bordo Canny e applicare una trasformazione di Hough per rilevare cerchi e generare un'immagine separata da ciascuno dei cerchi.

1

Ho fatto qualche riconoscimento di piatti e ha funzionato abbastanza bene. fare questo:

fare un po 'di controllo della soglia (pulsanti devono essere più lucente sfondo) di lasciare solo i pulsanti,

poi cvFindContours

per ogni contorno:

  • corsa cvFitEllipse, verrà restituito entrambi gli assi (a, b) dell'ellisse montata.
  • controllare che l'area di un'ellisse PI a b sia simile all'area del contorno utilizzando cvContourArea e anche che entrambi gli assi siano simili a = b. (questo lascerà solo cerchi)
  • quindi puoi fare tutto ciò di cui hai bisogno. printContour, utilizzando cvPrintContour, utilizzare cvMinAreaRect2 per ottenere il pulsante rettangolo di selezione, ecc

trasformata di Hough è anche possibile, ma è piuttosto più costoso.

+0

grazie mille per la risposta, proverò questi metodi. – Karan

Problemi correlati