Şablon eşleştirmeden önce gerekli görüntü işleme işlemleri


13

Bu, görüntü işleme sınıfına girmediğimi gösterebilir.

Görüntülerde bir nesne eşleştirmek için bu şablonu var. Ancak, örneğin görüntülerdeki gerçek nesne böyle görünmüyor, ikinci görüntü. İkincisi gibi görüntülerin şablon eşleştirmeye hazır olması için hangi işlemleri yapmam gerekir? FYI, üçüncü görüntü ideal bir eşleşme gösteriyor.

Başka bir fikirde, şablonu görüntüye sığdırıyorum. Yani, şablondakilerle eşleşmesi için görüntüde dört köşe koordinatı veriyorum. Ardından şablonu alana sığdırmanın bir yolunu hesaplar.

GÜNCELLEME: Sorun çözüldü. Aşağıda seçtiğim cevap sayesinde. Şablonumu görüntüye başarıyla uygulamayı başardım. Son görüntü sonucu gösterir.

resim açıklamasını buraya girin

resim açıklamasını buraya girin

resim açıklamasını buraya girin resim açıklamasını buraya girin


o beyaz ızgaraya uymayacaksın, değil mi? İkinci görüntünüzdeki gerçek renkli ızgarayı eşleştirmek istiyorsunuz, değil mi?
Endolit

@ endolith Her iki şekilde de iyi olduğunu düşünüyorum.
Tae-Sung Shin

algoritmanızın temel konseptini paylaşabilir misiniz? bir grafik için de aynısını yapmam gerekiyor.
Gilad

Yanıtlar:


9

Gönderdiğiniz örnek resim, cadı blok kullanımında şablon eşleştirme teknikleri ile sorunlara neden olabilecek nispeten güçlü bir perspektife sahiptir (doğrudan yüzey normalinden görüntülenmez). Görüntüyü güçlü bir perspektifle almanız gerektiğini varsayıyorum, bu yüzden yapmak istediğimiz ilk şey perspektif projeksiyonunu kaldıracak ve düzeltilmiş görüntü ("düz görüntü") elde edecek görüntü dönüşümünü tahmin etmektir.

Şekil bilindiğinde perspektif projeksiyonunu düzeltme

Ön işlemenin nihai amacı, renk şemasının arka planı olan gri dikdörtgenin köşelerini bulmaktır. Ben sadece sabit değerle eşleştirerek başladım. Literatürde / web'de, görüntünün dengesiz aydınlatması olduğunda eşiklemenin nasıl yapılacağı hakkında birçok bilgi vardır, ancak mümkünse görüntüleme düzenini, ışığın nispeten eşit olacağı şekilde düzeltmeye çalışın.

Sabit değerle eşik

Renk şemasının ekranın oldukça büyük bir bölümünü aldığını varsaydım, bu yüzden muhtemelen görüntünün en büyük sürekli bölgesi. Birçok farklı siyah ve beyaz etiketleme işlevi vardır (MATLAB'lar bwlabel, IPP'ler LabelMarkers, OpenCV, bağlı her bölgeye kendi indeksini veren harici kütüphane cvblobuna sahiptir). Etiketlemeden sonra, bağlı bileşenlerin alanlarını bir histogram kullanarak hesaplayabilir ve daha sonra en geniş alana sahip bileşeni seçebilirsiniz.

En büyük lekeyi bulun

Bileşenlerin delikleri olmayacak şekilde bileşenlerini doldurmak genellikle iyi bir fikirdir, bu kenar piksel sayısını azaltır.

Kabarcığı doldurun

Artık kenar bulma işleçlerini kullanabiliriz (gradyan tabanlı yöntem kullandım, ancak yatılıya ait pikselleri almak için kenarı siyah piksellere bağlı beyaz pikselleri izleyerek de izleyebilirsiniz).

Sınırları bul

İlgilendiğimiz nesne dikdörtgen olduğundan, sağlam çizgi bağlantısı (RANSAC) kullanarak kenar piksellerine dört satır ekledim. Yeni bir çizgi bulduktan sonra, bulunan çizgiye yakın olan tüm noktaları kaldırdım, bu sonraki montaj işlemlerini nesnenin diğer kenarlarını döndürmeye zorlar. Sonunda tüm kenarlar bulunduğunda, çizgi kümesi arasındaki tüm olası kavşakları hesapladım. Ortaya çıkan nokta kümesinden görüntünün dışındaki tüm noktaları kaldırdım.

Şimdi kartelasındaki köşeleri ve grafik boyutlarını bildiği gibi, dönüşüm matrisi hesaplayabilir (iki düzlem arasındaki eşyazımı, projeksiyon. Çözmek için doğrudan doğrusal dönüşümü (DLT) kullanmak ) milimetre koordinatları arasında piksel koordinatları.HHH

x=HX

Bu dönüşüm matrisi daha sonra orijinal görüntüyü, renk şeması normal yüzey yönünden doğrudan görüntülenecek şekilde dönüştürmek için kullanılabilir.

Çizgileri kenarlara sığdır

Görüldüğü gibi sadece radyal bozulma kalmıştır. Biz dönüşümü kullanıldığında Görüntü dönüşümü (2B enterpolasyon) sağlamak için, şimdi, örneğin harfler boyutunu bilmek, yani, görüntünün bir tam çözünürlüğünü biliyoruz, interpolasyon koordinatları, seçtik.H

Yine de bazı şablon eşleştirmeleri yapmak istiyorsak, uygun şablon eşleştirme yöntemlerini kullanabiliriz. Görüntü zaten düzeltilmiş olduğundan, yöntemin döndürme / ölçek değişmez olması gerekmez.

Doğru perspektif


1

Kenar algılama ile başlayın. Sonra düz çizgileri tespit etmek için Hough dönüşümünü kullanın. Ardından hangi çizgilerin paralel ve hangilerinin dik olması gerektiğini belirleyin. Ardından, dikey olması gereken çizgilerin aslında dik olması için projektif dönüşümü tahmin edin.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.