Changing Color with Trackbar

Kategori: Python / OpenCV , 01 Ekim 2019 , JanFranco


Bir matris oluşturarak kendi resmimizi üreteceğiz. Komple siyah bir resim örneğin. Daha sonra bir trackbar oluşturarak bu siyah rengi değiştirmeye çalışacağız. Resmi ve pencereyi oluşturalım:


img = np.zeros((512,512,3), np.uint8)
cv2.namedWindow("Trackbar")
Trackbar'ları oluşturalım:


def nothing(x):
    pass

cv2.createTrackbar("R", "Trackbar", 0, 255, nothing)
cv2.createTrackbar("G", "Trackbar", 0, 255, nothing)
cv2.createTrackbar("B", "Trackbar", 0, 255, nothing)
cv2.createTrackbar("E", "Trackbar", 0, 1, nothing)
createTrackbar() methodu ile 4 trackbar oluşturduk. İlk argüman isimlerdir. Pencerede bu isimle ayırt edebiliriz. İkinci argüman trackbar'ın hangi pencereye ait olacağıdır. Üçüncü ve dördüncü argümanlar minimum ve maksimum değerleridir. Son argüman fonksiyondur. Bu argümanı vermek zorundayız fakat herhangi bir fonksiyon kullanmak istemediğimiz için nothing adında bir fonksiyon açtık ve gönderdik. Şimdi bir döngü açalım ve getTrackbarPos() methodu ile trackbar'daki bilgileri alarak rengi değiştirelim:


while(True):
    cv2.imshow("Trackbar", img)

    if cv2.waitKey(1) & 0xFF == 27:
        break

    r = cv2.getTrackbarPos("R", "Trackbar")
    g = cv2.getTrackbarPos("G", "Trackbar")
    b = cv2.getTrackbarPos("B", "Trackbar")
    e = cv2.getTrackbarPos("E", "Trackbar")

    if e == 0:
        img[:] = 0
    else:
        img[:] = [r,g,b]
E isimli Trackbar aktifleştirmek için vardır. Eğer 0 ise renk değişmeyecek, 1 ise renk değişecektir. Esc tuşuna basıldığında döngü sonlanacak ve aşağıdaki satır ile pencere bellekten silinecek:


cv2.destroyAllWindows()


Sonraki Yazı: Combining Two Images, addWeighted()
Yorumlar

Henüz bir yorum bulunmuyor.
Yorum bırakın