Kayıt Ol

Giriş


Şifremi Kaybettim

Şifreni mi unuttun? Lütfen e-mail adresinizi giriniz. Bir bağlantı alacaksınız ve e-posta yoluyla yeni bir şifre oluşturacaksınız.

Giriş


Kayıt Ol

Merhaba, kayıt formu üzerinden kayıt olabilirsiniz. Fakat sosyal medya ile kayıt olmanızı önermekteyiz.

Python ile OpenCV Günlükleri-3 / Mouse ile Resim üzerinde Şekil Çizme – Mouse Event Handler

Python ile OpenCV Günlükleri-3 / Mouse ile Resim üzerinde Şekil Çizme – Mouse Event Handler

iyi günler python türkiye ailesi
Yazı dizimize kaldığımız yerden devam ediyoruz. En son yazımızda Opencv ile resim dosyası okuma ve yazma işlemlerini anlatmıştım

Aslında yazı dizilerime sırasıyla resim işleme, video işleme , mouse Event ile şekil çizim vs. şeklinde devam edecektim
Bugün değişiklik yapıp Mouse Event işlemlerini öne aldım .Bu yazımda Mouse Eventlarını yakalayıp, yapılan event’a göre resim üzerine şekil çizme konusuna değineceğim

 

setMouseCallback() fonksiyonu

Tüm mouse eventlarını handle edeceğimiz, her event’a mouse’ın x, y koordinat bilgilerini döndüren fonksiyondur. Mouse event; sol click, sağ click, sol double click, sağ double click, mouse up vb. değişkenlik göstermektedir

Senaryo 1: Bigisayarımızdaki bir resmi show edip, mouse sol tuş double-click yaptığımız yerde(x,y ) çember çizen bir uygulama

öncelikle resim dosyasını okuyalım :

Pencere oluşturalım

şimdi ise mouse event yakalayacağımız fonksiyonu yazalım .

Event olduğunda Çağıracağımız fonksiyon

  • Mouse sol tuşu double-click yapıldığında  tıklanılan yere (x,y) 50 yarıçaplı çember çizer . Son parametre olan 1 çizgi kalınlığıdır. -1 değeri verirseniz daire çizer

şimdi bir döngü oluşturalım  ve resmimizi show edelim. Kullanıcı ESC tuşuna basana kadar döngü sürsün.

Senaryo 2:  Bilgisayarımızdaki bir resmi show edip, kullanıcı sol tuş double-click yaptığında çember, sağ tuş double click yaptığında dörtgen çizelim

resmimizi okuma, winname ve event handler fonksiyonu

Mouse event’ı olduğunda çağrılacak fonksiyonu yazalım

Yukarıdaki kodlarda değinmemiz gereken önemli husus var

Bildiğiniz üzere Opencv de çember çizerken sadece çizime başlanılacak noktanın (x,y) koordinat bilgilerini belirtmek kafi idi. Ama durum dörtgen çizerken değişiyor. Dörtgen çizerken rectangle() fonksyonu koordinat olarak sol üst köşenin koordinatını ve sağ alt köşenin koordinatını belirtmemizi bekler

Ben de random değerlerden kaçarak, global x,y değişkeni tanımladım. Bu değişkenlere en son çizilen çemberin x,y bilgilerini atadım. Böylece eğer kullanıcı sağ tuş double click yaparsa, sol üst koordinatı önceki çemberin koordinatı, sağ alt koordinatı ise o anda sağ tuş double click yaptığımız yerin koordinatı olan  dörtgen çizecek

 

 

 

Kaynak Kodu : https://github.com/farcompen/Opencv-drawing-with-mouse/blob/master/Mouse_Double_click.py

Bol pythonlu günler


Hakkında Faruk GÜNGÖRKalfa


Beni Takip Et

Cevap yazın

Captcha Captcha güncellemek için resime tıkla