Qual è l'algoritmo più sensibile, o una combinazione di algoritmi, di utilizzare da OpenCV per il seguente problema:rilevamento subimage 2D in Open CV
- Ho una serie di piccole immagini 2D. Voglio rilevare le posizioni di queste immagini secondarie in un'immagine più grande.
- Le immagini secondarie di solito sono intorno a 32x32 pixel e l'immagine più grande è intorno a 400x400.
- Le immagini secondarie non sono sempre quadrate e tali contengono il canale alfa.
- Opzionalmente - l'immagine più grande può essere granulosa, compressa, ruotato in 3D, o in altro modo un po 'distorto
ho cercato cvMatchTemplate, con risultati molto scarsi (difficili da abbinare in modo corretto, e un gran numero di falsi positivi, con tutti i metodi di corrispondenza). Alcuni dei problemi derivano dal fatto che OpenCV non sembra avere a che fare con la corrispondenza dei modelli di canale alfa.
Ho provato una ricerca manuale, che sembra funzionare meglio e può includere il canale alfa, ma è molto lenta.
Grazie per qualsiasi aiuto.
Buona risposta. Ho provato altre metriche senza alcun aumento sensibile dell'affidabilità. Una preelaborazione di forza edge sembra un buon piano, ci proverò. – Sam
Humm, la pre-messa in pila dell'immagine non sembra essere d'aiuto, poiché le leggere differenze di compressione producono differenze nette con risultati NCC sbagliati ... Altri suggerimenti? – Sam
Ciò è dovuto alla differenza di scala nelle immagini. La tua immagine di destinazione è ~ 10 volte più piccola della sorgente. Di conseguenza dovrai stimare lo spazio della scala per fare anche la corrispondenza. – nav