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.
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.
Bileşenlerin delikleri olmayacak şekilde bileşenlerini doldurmak genellikle iyi bir fikirdir, bu kenar piksel sayısını azaltır.
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).
İ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.
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.