10

Ho una conoscenza di base nell'elaborazione delle immagini e ora studio approfonditamente il libro "Digital Image Processing" di Gonzales.Rilevamento di un oggetto sull'immagine in base alla forma geometrica

Quando è nota l'immagine e la forma approssimativa oggetto di interesse (ad esempio cerchio, triangolo), qual è il miglior algoritmo/metodo per trovare questo oggetto sull'immagine?

L'oggetto può essere leggermente deformato, quindi l'approccio della forza bruta non è di aiuto.

risposta

5

Si consiglia di utilizzare la trasformazione di Hough, che consente di trovare qualsiasi modello definito da un'equazione. Inoltre, la trasformazione di Hough funziona anche per oggetti deformati.

L'algoritmo e l'implementazione sono piuttosto semplici. Ulteriori dettagli possono essere trovati qui: http://en.wikipedia.org/wiki/Hough_transform, anche un codice sorgente per questo algoritmo è incluso in una pagina di riferimento (http://www.rob.cs.tu-bs.de/content/04-teaching/06-interactive/HNF.html).

Spero che questo ti aiuti.

+0

La trasformazione di Hough è una specie di forza bruta, come noterete. Funziona per linee, forse cerchi. Tuttavia lo spazio Hough esplode con forme con più parametri. – Ivan

3

vorrei guardare il problema in due fasi:

  • primo trovare confine esterno del vostro oggetto: sto supponendo che avete contrastato abbastanza immagine, che si può facilmente la soglia per ottenere un binario immagine del tuo oggetto. È necessario estrarre il codice catena del limite dell'oggetto.

  • poi analizzando la forma del contorno di dedurre la forma (cerchio, poligono, ...): È possibile calcolare la curvatura in ogni punto della catena di confine e quindi di determinare quanti angoli acuti (cioè elevata curvatura valore) ci sono nella tua forma. Diversi angoli acuti significano che hai un poligono, nessuno significa che hai un cerchio (curvatura costante).

Si può trovare una descrizione su come ottenere i confini del tuo oggetto dalla immagine binaria e modi di analizzare in Gonzalez's Digital Image Processing, chapter 11.

Ho anche trovato questo insightful presentation on binary image analyis (PPT) e uno matlab script che implementa alcune delle tecniche di cui parla Gonzalez in DIP.

+0

Mi sono reso conto che stavo rispondendo a una domanda diversa da quello che è stato chiesto. Tuttavia, puoi comunque provare a trovare oggetti in questo modo e quindi conservare solo i moduli che stai cercando. – Ivan

1

Si consiglia vivamente di utilizzare OpenCV, è una grande libreria di computer vision che è di grande aiuto per tutto ciò che riguarda la visione artificiale. Il loro sito Web non è davvero attraente, né utile, ma l'API è davvero potente.

Un libro che mi ha aiutato molto poiché non c'è un carico di documentazione sul web è Learning OpenCV. La documentazione fornita con l'API è buona, ma non eccezionale per imparare a usarla.

In relazione al problema, è possibile utilizzare un rilevatore Canny Edge per trovare il bordo dell'oggetto e quindi analizzarlo oppure procedere con la trasformazione di Hough per cercare linee o cerchi.

1

puoi provare in modo specifico "riconoscimento facciale".Perché, sai che è un argomento specifico. D'altra parte 'Face Detection' ecc. EmguCV può essere utile per te .. È un wrapper .NET per la libreria di elaborazione delle immagini Intel OpenCV.

1

Sembra che il professore Jean Rouat dell'Università di Sherbooke abbia trovato un modo per trovare oggetti nelle immagini elaborando una rete neuronale a spillo neutro. La sua tecnologia nome RN-SPIKES sembra essere disponibile per la licenza.

Problemi correlati