Supponiamo che stiamo cercando per questo modello:Come trovare un modello in un'immagine usando una maschera (o trasparenza) con OpenCV e Python?
Stop http://oi48.tinypic.com/2u7q1l4.jpg
Gli angoli del nostro modello sono trasparenti, in modo che il fondo può variare, in questo modo:
Stop on moon http://i49.tinypic.com/ziw3mc.png
Stop on everest http://i45.tinypic.com/2unwxhu.png
Stop on leaves http://i48.tinypic.com/t06v7k.png
Supponendo che potremmo utilizzare la seguente maschera con il nostro modello:
Stop http://oi48.tinypic.com/2u7q1l4.jpgStop mask http://i49.tinypic.com/ogclfd.png
Sarebbe molto facile da trovare.
Quello che ho cercato:
ho cercato matchTemplate
ma non supporta le maschere (per quanto ne so), e utilizzando il canale alfa (trasparenza) nel modello non raggiungere questo obiettivo, come confronta i canali alfa invece di ignorare quei pixel.
Ho anche esaminato la "regione di interesse", che ho pensato sarebbe stata la soluzione, ma con essa è possibile specificare solo un'area rettangolare. Non sono nemmeno sicuro che funzioni sul modello o meno.
Sono sicuro che è possibile farlo scrivendo il mio algoritmo, ma speravo che fosse possibile tramite. OpenCV standard per evitare di reinventare la ruota. Per non parlare, molto probabilmente sarebbe più ottimizzato del mio.
Quindi, come posso fare qualcosa di simile con OpenCV + Python?
Sarebbe di grande aiuto se pubblicassi cose che hai provato. Comunque, una domanda molto interessante. –
Grazie per il commento. Ho aggiunto le cose che ho provato, non pensavo che valesse la pena menzionarle. – user1973386
Prova i punti chiave corrispondenti usando SIFT/SURF – Froyo