Karo Genişliği Ölçümü
Last updated
Last updated
Ölçümler, projenin bağlamına bağlı olarak zorlu olabilir. AugeLab Studio'nun kullanıma hazır fonksiyon blokları, böyle zorlu bir konuda kolay ve hızlı ölçümler yapmanıza olanak tanır.
Bu örnek, bir ahşap karonun genişliğini (etkili olarak mesafesini) nasıl ölçeceğinizi gösterecektir.
Öncelikle, Load Image fonksiyon bloğunu kullanın ve AugeLab Studio tarafından sağlanan örnek resim klasöründen wood.jpg dosyasını yükleyin.
Amacımız her karonun genişliğini ölçmek ve bunları yazdırmaktır. Sonraki adımda, bu görüntüyü kameranın veya çevrenin neden olabileceği gürültüyü azaltmak için ön işleme tabi tutmamız gerekecek. Bu tür durumlar için, Blur fonksiyon bloğu Median Blur seçeneği ile oldukça iyi bir uyum sağlar. Aşağıdaki mantığı oluşturun:
Ön işleme işlemini minimumda tutmak için Kernel Size değerini 3 olarak ayarlıyoruz, çünkü her türlü ön işleme, ölçümler sırasında nihai sonucu etkileyebilir. Sonraki adımda, Histogram on Line fonksiyon bloğunu kullanacağız.
Histogram on Line fonksiyon bloğu, keskin kenarları otomatik olarak tespit eder, konumlarını verilen eşik ve konum değerlerine göre nokta olarak depolar. Aşağıdaki mantığı oluşturarak:
Histogram on Line bloğuna 100. yatay piksel konumunda kenarları hesaplamasını ve değerleri 100 (0-255 arasında olabilir) üzerinde olan kenarları aramasını söylüyoruz.
Tespit çizgisinin yatay konumu (ikinci soket) en önemli yer olduğundan, diğer faktörler yanıltıcı tespitlere neden olabilir. 350 değerini verelim ve bu senaryoda ne olacağını görelim:
Daha fazla rahatsızlık olan bir yatay çizgi seçmek yanıltıcı tespitlere neden oldu. Bu nedenle, her zaman gürültü ve çevreden en az etkilenen bir çizgi seçmek önerilir.
Her karonun kenar konumlarını başarıyla hesapladık, şimdi birkaç blok kullanarak ilk karonun genişliğini hesaplayabiliriz.
Öncelikle, Histogram on Line bloğunun Peak Mean Locations çıktısını kullanacağız. Bu çıktı, list of positions içerir:
Her konum, zirve konumlarının yatay ve dikey (x, y) konumlarını içerir. Demux bloğunu kullanarak veya Measure Position Distance fonksiyon bloğunu kullanarak her nokta arasındaki mesafeyi hesaplayabiliriz.
Liste Operasyonları bloğunu kullanın ve açılır menüden get seçeneğini seçin. Aşağıdaki mantığı izleyin:
Yukarıdaki mantık, sıfır (0) sağlayarak ilk öğeyi, bir (1) sağlayarak ikinci öğeyi seçer. Measure Position Distance kullanarak; x-y ve Öklid mesafeleri hesaplanır ve sunulur.
Yüksek ihtimalle, y mesafesinin sıfır olduğunu fark ettiniz; çünkü tüm noktalar aynı yatay çizgide bulunuyor.
Hepsi bu kadar! İlk karonun genişliğini başarıyla hesapladınız.
Şimdi, liste ve toplu işlemler kullanarak diğer genişlikleri hesaplayalım.
Aynı List Operations fonksiyon bloğunu kullanarak pop seçeneğini kullanacağız. Pop seçeneği, bir listeden verilen dizindeki öğeyi kaldırır. Yine aşağıdaki mantığı oluşturalım:
List Operations bloğu, sağlanan listeyi önce kopyalar ve ardından istenen sonucu hesaplar. İlk öğe olmadan zirve konumları listesini oluşturduk ve sadece son öğeyi kaldırarak başka bir liste oluşturduk.
Batch Processing ile Data Type Converter kullanarak, her zirve noktası arasındaki pozisyon farklılıklarını hesaplayabiliriz:
Toplu İşleme ile çalışırken Data Type Converter kullanmak önemlidir. Eğer bir fonksiyon bloğu bir toplu işlem alırsa, toplu modda çalışır. Normal çalışma moduna geri dönmek için menüsünden Batch2List seçeneğini kullanın.
Hepsi bu kadar! Tüm karoların genişliğini hesapladınız!