Bir Görüntüyü Eşikleme
Kameranız tarafından çekilmiş gibi renkli bir görüntüyü hedefin “foreground-ön plan” olduğu ikili bir görüntüye dönüştürmek için, her pikselin tonunu, doygunluğunu ve değerini kullanarak görüntüyü eşik yapmamız gerekir.
HSV Modeli
RGB’den farklı olarak HSV, yalnızca piksellerin renklerine göre değil, aynı zamanda renk yoğunluğuna ve parlaklığa göre de filtre uygulamanıza olanak tanır.
Ton: Pikselin rengini ölçer.
Doygunluk: Pikselin renk yoğunluğunu ölçer.
Value: Measures the brightness of the pixel.
Bir BGR görüntü matrisini HSV’ye dönüştürmek için OpenCV’yi kullanabilirsiniz.
hsv_img = cv2.cvtColor(input_img, cv2.COLOR_BGR2HSV)
Not
OpenCV’nin ton aralığı, ortak 1 ° ila 360 ° yerine 1 ° ila 180 ° arasındadır. Ortak bir ton değerini OpenCV’ye dönüştürmek için 2’ye bölün.
Thresholding-Eşik
Bu alan görüntüsünü tüm görüntü işleme süreci için örnek olarak kullanacağız.
Görüntüyü HSV kullanarak eşleyerek, görüntüyü hedef (ön plan) ve kameranın gördüğü diğer şeyler (arka plan) olarak ayırabilirsiniz. Aşağıdaki kod örneği, bir HSV görüntüsünü HSV değerleriyle eşikleyerek ikili görüntüye dönüştürür.
binary_img = cv2.inRange(hsv_img, (min_hue, min_sat, min_val), (max_hue, max_sat, max_val))
Not
Ortam aydınlatması mekanlar arasında farklılık gösterebileceğinden, bu değerlerin mekana göre ayarlanması gerekebilir. Anında düzenlemeyi kolaylaştırmak için bu değerlerin NetworkTables aracılığıyla düzenlenmesine izin verilmesi önerilir.
Eşiklemeden sonra, görüntünüz böyle görünmelidir.
Gördüğünüz gibi, eşikleme işlemi% 100 temiz olmayabilir. Gürültüyle başa çıkmak için morfolojik işlemleri kullanabilirsiniz.