8

Kenarları boyunca bir eğri ve eğriyi içeren bir şablon görüntüsü için aranacak bir hedef resmim var. Benim elde etmem gereken şey, hedef görüntüdeki şablon görüntüsündeki eğrinin en iyi eşleşmesini bulmak ve bir eşleşme olup olmadığını bulmak için skoru temel almaktır. Bu ayrıca eğrinin dönmesini ve yeniden boyutlandırılmasını da içerir. Hedef görüntü, işleri kolaylaştırırsa Canny Edge dedektörünün çıkışı olabilir.Bir görüntünün kenarlarına bir eğri deseni eşleştirme

OpenCV'yi (Python veya Processing/Java kullanarak veya gerekli işlevlere sınırlı erişime sahipse C'yi kullanarak) pratik ve verimli hale getirmek için kullanmayı düşünüyorum, ancak herhangi bir şeyi kullanıp kullanamayacağımı anlayamadım. OpenCV'de bu işi yapmak için kullanılabilen işlevler (veya bunların bir birleşimi). OpenCV belgelerini okudum ve ilk önce Konturların bu işi yapabildiğini düşündüm, ancak tüm örnekler, açık bir eğriyi bir kenarın bir kısmıyla eşleştirmek zorunda olduğum durumumun aksine kapalı şekiller gösteriyor.

Bunu yapmak için OpenCV veya önerebileceğiniz herhangi bir kod veya algoritma ile bir yolu var mı?

İşte bazı görüntülerin sorunu göstermek için şunlardır:

Template image containing the curve to be searched for

Input image to be searched for the template curve and to be matched to its edges; this can also be an edge-image, the output of a Canny Edge detector rather than the unprocessed input image

Resulting match - includes rotation and resizing

cevap

2

ilk düşüncem Generalized Hough Transform oldu. Ancak bunun için iyi bir uygulama bilmiyorum.

Kanuni kenar görüntüsünde önce SIFT veya SURF kullanmayı denerim. Genellikle 1d konturları değil, 2d alanlarını bulmak için kullanılır, ancak konturunuzun etrafındaki minimum sınırlayıcı kutuyu alır ve bunu arama kalıbı olarak kullanırsanız, çalışması gerekir. Features2D + Homography to find a known object

bir problem iyi bir kenar görüntüsünü alıyor olabilir, arkasında olanlar siyah şekiller dikkat dağıtıcı olabilir:

OpenCV bunun için bir uygulama var.

Ayrıca, bu Stackoverflow cevaba bakınız: Image Processing: Algorithm Improvement for 'Coca-Cola Can' Recognition

+0

Teşekkür, ben bu deneyin ve benim sonuçları veya bulguları hakkında bilgi vermek için burada geri gelecektir. – ali

+1

Herhangi bir şans, Ali? Ayrıca şu sorulara da bakabilirsiniz: http://stackoverflow.com/questions/14530790/image-processing-match-curves-from-one-image-to-another – Rethunk

+0

Teşekkürler Rehunk, şu ana kadar yorum yap; uzun zaman ... Gerçek bir çözümüm yoktu, ama işi daha çok geri yapan kısmi bir kararım vardı; yavaş ve w/o rotasyonları: Şablonu farklı boyutlarda yeniden boyutlandırarak basit bir korelasyon eşleştirmesi kullandım, ancak doğrudan görüntüdeki eğriyle değil, her kenar noktasının eğimi için karşılık gelen bir renge sahip olduğu bir renk kodlu kenar görüntüsünde Şablon eğrisi, her noktadaki eğrinin eğimine bağlı olarak renk kodluydu. Daha sonra bu renkleri korelasyon ile karşılaştırdım ve sonuçlar sınırlı/pratik bir çözüm için tamamlandı ... – ali

İlgili konular