OpenCV-Python Uygulamaları-5

Çarşamba, Ağustos 02, 2017 , , 0 Comments


Kullanılan Sistem Özellikleri: Ubuntu 16.04 LTS, OpenCV 3.2, Python 3.5.2

Hedefler

Değer Çubuğu ("TrackBar" ifadesi için bildiğim en doğru karşılık bu, daha doğrusu için bilgilendirirseniz sevinirim.) 'nu OpenCV pencerelerine bağlamayı öğreneceğiz.
Kullanılacak Fonksiyonlar: cv2.getTrackbarPos(), cv2.createTrackbar()

Örnek uygulamamızda, belirttiğimiz rengi gösteren basit bir işlem yapacağız. BGR (Blue,Green,Red) renklerini gösteren, her bir renk için ayrı bir değer çubuğumuz(trackbar) olacak. Çubuğu hareket ettirmemiz ile birlikte renk paletinde değişim gözlenecek. Başlangıç rengi olarak siyah atanacak.

cv2.getTrackbarPos() fonksiyonu için, ilk argüman değer çubuğuna(trackbar) verilecek isim, ikincisi açılacak pencereye verilecek isim, üçüncü argüman; varsayılan(default) değeri, dördüncü argüman, maksimum değer, beşinci argüman ise callback(geri çağırma) fonksiyonun değeridir. Geri çağırma fonksiyonu her zaman bir varsayılan(default) değere sahiptir. Bizim örnek uygulamamızda ise yaptığı spesifik bir iş olmadığından başlangıç değerini geçiyoruz.

Bir başka önemli uygulama noktası ise değer çubuğunu bir buton veya anahtar(switch) gibi kullanmaktır. OpenCV varsayılan(default) olarak bir buton fonksiyonuna sahip değildir. O yüzden track bar bir buton gibi kullanılabilir.


import cv2
import numpy as np

def nothing(x):
    pass

# Siyah bir görüntü oluştur:

img = np.zeros((300,512,3),np.uint8)
cv2.namedWindow('image')

# Değer Çubuğu(Track Bar) Oluştur:

cv2.createTrackbar('R','image',0,255,nothing)
cv2.createTrackbar('G','image',0,255,nothing)
cv2.createTrackbar('B','image',0,255,nothing)

# Anahtar(Switch) Oluştur: AÇ/KAPA özelliği için:

switch = 'O : KAPA \n1: AC'
cv2.createTrackbar(switch, 'image',0,1,nothing)

while(1):
     cv2.imshow('image',img)
     k = cv2.waitKey(1) & 0xFF
     if k ==27:
         break

# Oluşturulan Dört Değer Çubuğunun Anlık Durumlarını Tutmak İçin:

     r = cv2.getTrackbarPos('R', 'image')
     g = cv2.getTrackbarPos('G', 'image')
     b = cv2.getTrackbarPos('B', 'image')
     s = cv2.getTrackbarPos('switch', 'image')

     if s == 0:
         img[:] = 0
     else:
         img[:] = [b,g,r]

cv2.destrowAllWindows()

Uygulamanın çıktısı aşağıdaki gibidir. Değer çubuğu ile istediğiniz rengi elde edebilirsiniz. İyi Eğlenceler..
Kaynakça:  http://docs.opencv.org/3.2.0/
Kaynak dosyaları ve Resimleri indirmek için: TIKLAYINIZ

0 yorum: