Ho un set di immagini binarie, su cui ho bisogno di trovare la croce (esempi in allegato). Io uso findcontours per estrarre i bordi dall'immagine binaria. Ma non riesco a capire come posso determinare se questa croce (di confine) forma o no? Forse opencv ha alcuni metodi incorporati, che potrebbero aiutare a risolvere questo problema. Ho pensato di risolvere questo problema usando Machine learning, ma penso che ci sia un modo più semplice per farlo. Grazie!Trovare croce sull'immagine
risposta
Viola-Jones object detection potrebbe essere un buon inizio. Sebbene l'utilizzo principale dell'algoritmo (AFAIK) sia il rilevamento dei volti, è stato effettivamente progettato per qualsiasi rilevamento di oggetti, come il cross.
L'algoritmo è un algoritmo basato sull'apprendimento automatico (quindi, sarà necessario un set di "croci" classificate e un set di "non incrociati" classificati, e sarà necessario identificare le "caratteristiche" significative (schemi) questo aiuterà l'algoritmo a riconoscere le croci.
L'algoritmo è implementato in OpenCV come cvHaarDetectObjects()
dopo alcuni giorni di lotta, sono giunto alla conclusione che l'unico modo valido qui è usare SVM + HOG. È tutto.
Dall'immagine originale, diciamo che hai estratto set di poligoni che potenzialmente potrebbero essere la tua croce. Supponendo che tutta la croce sia visibile, nella misura in cui tutti gli spigoli possono essere distinti come aventi una lunghezza, puoi provare quanto segue.
rifiutare tutti i poligoni che non hanno esattamente 12 i vertici necessari per formare poligono.
Riordinare i vertici in modo che la lunghezza del bordo più breve sia la prima.
Creare una misura migliore perspective transformation che mappa i tuoi vertici su una croce di dimensioni uniformi
Esaminare i residui generati utilizzando questa trasformazione per proiettare la tua croce indietro sulla croce divisa, dove il residuo per ogni punto è la distanza tra il punto proiettato e il punto uniforme corrispondente.
- Se tutti i residui rientrano nella tolleranza definita, è stata trovata una croce.
Nota che questo funziona principalmente a causa della semplicità della forma geometrica che stai cercando. Anche i contorni dovranno essere rimossi dal rumore per far funzionare tutto ciò, ad es. ogni linea all'interno della croce deve essere convertita in una singola linea semplice.
È possibile erodere ciascun blob e analizzare il loro numero di pixel che sta diminuendo. Non importa il ridimensionamento della rotazione delle croci che dovrebbero sempre scendere con lo stesso rapporto, tranne quando stai chiudendo il centro rimanente. Di nuovo, quando il blob è abbastanza piccolo dovresti aspettarti che si trovi al centro del blob originale. Non è necessario alcun algoritmo di apprendimento automatico o dati di allenamento per risolvere questo problema.
- 1. Line crosses Rectangle - come trovare i punti croce?
- 2. dominio Croce URL
- 3. Croce XHR dominio fallendo
- 4. AJAX croce dominio chiamata
- 5. Nim croce compilazione di C
- 6. Croce compilazione per il braccio
- 7. Disegna una croce in WPF
- 8. Croce Compile helloworld per ARM
- 9. operazione filo Croce non valida
- 10. Eclipse mostra "croce rossa" sull'icona del progetto
- 11. Accesso servizio Web da jQuery - dominio croce
- 12. Croce applicare una funzione valutata tabella
- 13. bersaglio ospite Croce Compilazione e costruire
- 14. MS SQL Server vincolo di tabella croce
- 15. Autenticazione OAuth a croce con ServiceStack
- 16. JQuery animare la posizione Sfondo browser Croce
- 17. condivisione delle risorse Croce origine con PrototypeJS
- 18. Creare una forma di croce in CSS
- 19. Croce (C/C++) Libreria audio per MP3, AAC, WAV
- 20. Come eseguire la convalida casuale della foresta/croce in R
- 21. undefined reference to printf quando si usa GCC croce compilatore
- 22. iframe messaggistica croce dominio con jQuery postMessage plug
- 23. errore nel calcolo tensorflow croce perdita di entropia
- 24. Perché questa croce si unisce così lentamente a Linq?
- 25. Croce cookie di dominio utilizzando CORS in Safari
- 26. Cursore a croce a schermo intero HTML5 o JQuery
- 27. import google-play-servizio di dipendenza croce rossa
- 28. LEFT JOIN una query con una croce applicare
- 29. Trovare l'elemento più vicino al punto cliccato
- 30. Croce piattaforma modo di testare se un file è una directory
ciò non funzionerebbe perché i diversi punti che si trovano sul bordo della linea incrociata avranno gli stessi descrittori SIFT. –
Oh capisco ... quindi il cerchio intorno alla croce non è sempre presente? (entrambi gli esempi mostrano una croce all'interno di un cerchio) –