13

İki resmi karşılaştırmak için CV_TM_CCORR_NORMED ile eşleme şablonunu kullanıyorum ... Bu dönüşü yapmak ve değişmez olarak ölçeklendirmek istiyorum .. herhangi bir fikir? ölçek ve rotasyon Şablon eşleştirme

Ben görüntü ve şablonun Fourier transform üzerinde aynı yöntemi kullanmaya çalıştı, ancak nesne döndürülmüş veya sahnede ölçekli edildiğinde hala dönme sonra sonuç matchTemplate ile

cevap

28

Şablon eşleme iyi farklı değil mi .

openCV işlevini Features2D Framework'den denemelisiniz. Örneğin SIFT veya SURF tanımlayıcıları ve FLANN eşleştiricisi. Ayrıca, findHomography yöntemine ihtiyacınız olacak.

Here, sahnede döndürülen nesneyi bulmak için iyi bir örnektir.

Güncelleme: Kısacası

, algoritma şudur: nesneye görüntünün 1.1

  1. bulma keypoints. keypoints gelen 2.1 ayıklanıyor tanımlayıcıları

  2. Maç tanımlayıcıları Eşleştirici

  3. ederek sahne görüntüsünün keypoints bulma o keypoints

  4. gelen tanımlayıcılar ayıklanıyor eşlemeleriniz

vardır farklı sınıflar Analiz FeatureDetectors, DescriptorExtractors ve DescriptorMatches öğelerini, bunlarla ilgili olarak okuyabilir ve sizin için uygun olanları seçebilirsiniz. sks.

+0

** Zaten eşyazımı kullanılan, teşekkür ederiz ve bunun yerine sörf I ilgi noktaları olarak köşeleri bulundu, Flann ile bu iş? Sörf ve eleme uzun zaman alabilir ve performansı azaltabilir ** – Storm2012

+0

'İlgi çekici noktalar 'genel terimdir. Kenarları ve çoğunlukla köşeleridir. İlgi noktalarını nasıl buldunuz? OpenCV 'FeatureDetector's herhangi birini kullanabilir veya kendiniz yazabilirsiniz. Örneğin, "FAST", "STAR" var. Onlar basit ve hızlıdır. Fakat ilgi noktaları açısından bilgi tutmazlar. “SURF” ve “SIFT” daha yavaştır, ancak ilgi alanları hakkındaki bilgileri daha büyüktür (açıları). SIFT ve SURF, ölçek değişmez eşleşmeleri bulmanızı sağlar. Ancak, eşleştiriciniz için herhangi bir openCV detektörünü kullanabilirsiniz. //meta.stackexchange: Ayrıca bu yanıtı faydalı oldu ve/veya sorunuzu yanıt verdiyseniz –

+0

Storm2012 @ size – Storm2012

6

Rotasyon

Her anahtar nokta için:

  1. Anahtar noktanın etrafındaki alanı alın.
  2. Bu alanın yönelim açısını degrade veya başka bir yöntemle hesaplayın.
  3. Deseni döndür ve bu açıda alan isteğini 0'a getir.
  4. Bu döndürülen alanlar için tanımlayıcıları hesaplayın ve bunları eşleştirin.

BRISK yöntem

2

kolay bir şablon ölçeği eşleşen yolları ve biliyorsanız (özellik algılama ve homographies yoluyla gitmekten daha dönel değişmez vardır görün değişmez Ölçek onun gerçekten sadece döndürülmüş ve ölçekler ama her şey sabittir). Gerçek nesne algılaması için yukarıda önerilen anahtar nokta tabanlı yaklaşımlar daha iyi çalışır.

Aynı şablonun olduğunu ve perspektif değişikliği olmadığını biliyorsanız, ölçek alanı algılama için bir görüntü piramidi alırsınız ve şablonlarınızı bu piramidin farklı düzeylerinde eşleştirin (örneğin SSD veya NCC). Piramidin daha yüksek (= daha düşük çözünürlük) seviyelerinde kaba eşleşmeleri bulmak ucuz olacaktır. Aslında çok ucuz olacak, aynı zamanda şablonunuzu kabaca düşük çözünürlük seviyelerinde de döndürebiliyorsunuz, ve şablonu daha yüksek çözünürlük seviyesine kadar izlediğinizde, daha hassas bir rotasyon adımı kullanıyorsunuz. Bu oldukça standart bir şablon eşleme tekniği ve pratikte iyi çalışıyor.