Paint Application

Kategori: Python / OpenCV , 01 Ekim 2019 , JanFranco


Mouse ile her tıkladığımızda bir daire oluşturacak basit bir program yapalım. OpenCV kütüphanesinde imshow() methodu ile çıkan pencereyi düşünelim. Bu pencereye event atayabiliriz. Mouse ile tıklamak bir event'tir. Kullanıcı mouse ile pencereye tıkladığında bunu takip edebilir, hatta tıkladığı yerin koordinatlarını alabiliriz. Bu bilgilerle birlikte daire çizdiren fonksiyonu yazalım:


def drawCircle(event, x, y, _, __):
    if event == cv2.EVENT_LBUTTONDBLCLK:
        cv2.circle(img, (x, y), 60, (255, 0, 0), -1)
Parametreleri bu şekilde oluşturmalıyız. İsim fark etmiyor fakat sıra bu şekilde olmalı. Son iki parametreyi kullanmayacağız bu nedenle _ karakteri koydum. Önceki yazıda yaptığımız gibi siyah bir resim üretelim:


img = np.zeros((540, 540, 3), np.uint8)
Bir pencere açalım ve event atayalım:


cv2.namedWindow("Blackboard")
cv2.setMouseCallback("Blackboard", drawCircle)
Pencere isimleri aynı olmalıdır. setMouseCallback methoduna ikinci argüman olarak fonksiyonu yazmalıyız. Pencerenin sürekli açık kalabilmesi için bir döngü açalım:


while(True):
    cv2.imshow("Blackboard", img)
    if cv2.waitKey(0) & 0xFF == 27:
        break
Esc tuşuna basıldığında döngü sonlanacak ve aşağıdaki satır ile birlikte pencere kapanacak:


cv2.destroyAllWindows()


Sonraki Yazı: Changing Color with Trackbar
Yorumlar

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