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-4 : Trackbar oluşturma ve resim üzerinde serbest çizim yapmak

Python ile OpenCV Günlükleri-4 : Trackbar oluşturma ve resim üzerinde serbest çizim yapmak

İyi Günler Python Türkiye ailesi. Yazı dizimize devam ediyoruz. Bugün örnek senaryolar ile BGR Trackbar oluşturup, istediğimiz renkte, resim üzerinde serbest çizim yapacağız

Öncelikle önceki yazılarımı takip eden arkadaşlar farketmişlerdir. Opencv BGR modunu kullanır. Kodlarımızda hep standart renk kodu(255, 0, 0 veya (0,255,0)) belirterek çizimler yapmıştık. Şimdi bu sistemi biraz geliştirerek istediğimiz renkte, renk kodlarını girmeden çizimler yapalım .

Senaryo: Renkler için Trackbar tanımlayarak, resim üzerinde serbest çizim yapmak .

Gerekli modülleri import edelim

Şimdi palet penceresi oluşturalım. Bunun için numpy modülünün zeroes özelliğinden yararlanıp, belirttiğimiz boyutta pencere oluşturduk

Oluşturduğumuz pencereye isim verelim

Şimdi üzerinde çizim gerçekleştireceğimiz resmi okuyalım .

Penceremize isim verelim

Şimdi gelelim çizim işlemlerine. Çizim işlemleri serbest olacak. Kullanıcı mouse sol tusuna basıp, mouse sürükleyip bıraktığı anda, ilk bastığı yer ile bıraktığı yer arasında çizgi çizeceğiz . Bunun için callback fonksiyonunu yazalım . Callback donksiyonu içinde çizim yapacağımız fonksiyonumuz olan sekil_ciz fonksiyonunu çağırdık. Bu fonksiyonun içeriğine değineceğiz

Şimdi renklerimizi sececeğimiz, renk paleti olan trackbar oluşturalım.

Yukarıdaki kodlara değinelim.  createTrackbar(), fonksiyonu trackbar oluşturmamızı sağlayan fonksiyondur. 5 parametre alır. sırasıyla trackbarı’ın ismi, Trackbar’ın pencere ismi , trackbarın başlangıç değeri, bitiş değeri, ve callback yapılacak fonksiyonun ismi . Bu fonksiyon  trackbar’ın her pozisyon değişikliğinde çalıştırılan fonksiyondur.

 

 

Trackbarımız hazır. Şimdi sonsuz döngü oluşturalım ve kullanıcı ESC tuşuna basmadığı sürece resimlerimiz show olsun ve çizimlerimizi yapalım

Yukarıdaki kodumuzda position kısımlarına değinelim. Her renk için (Mavi, yeşil, Kırmızı)  trackbarın pozisyonunu getTrackbarPos () fonksiyonu ile aldık . 2 parametre alır. Trackbar’ın ismi ve pencere ismi

 

getTrackbarPos () fonksiyonu ile her renk için , anlık pozisyon bilgilerini aldık. Şimdi bu pozisyon bilgilerini çizim yapacağımız SetMouseCallBack içerisinde çağırdığımız event fonksiyonumuz içinde kullanalım

Yukarıdaki kod, sol tuşa basılan yer ile mouse’dan elimizi çektiğimiz nokta arasında çizgi çizer. Çizginin renk kodlarını trackbar pozisyon değerlerini atıyoruz. Mesela Kırmızı rengin trackbar pozisyonu 170, mavi 140, yeşil 50  ise , renk kodu olarak BGR (140, 50, 170) olacaktır.

ve palet için callback fonksiyonumuz olan palet_callback kodlarını yazalım .Parametre olarak trackbarı pozisyonunu alır. Biz hiçbişey yaptırmadık pass ettik.

 

 

Senaryo Kodları :

 

sdf

Hakkında Faruk GÜNGÖRKalfa


Beni Takip Et

Yorum ( 1 )

  1. Öncelikle, python hakkında ve kütüphaneleri üzerinde yaptığınız çalışmalar ve anlatımlar için sonsuz teşekkürler, bu aralar opencv modülünü öğrenmeye çalışıyorum ve bu amaçla da çalışmalarınızı takip etmekteyim, yukarıdaki kodları incelediğimde sekil_ciz fonksiyonu tanımlanırken global alandan ix ve iy değerleri alınmış ancak global alanda bu değerler tanımlı değil, bir başka sitede benzer konuyu incelerken ix ve iy değerlerini -1 olarak atamış burda da -1 atanırsa hata düzeltilmiş olunabilir.gözden kaçtı sanırsam hatırlatmak istedim:) herşey için tekrar teşekkürler.opencv ve matlabplotlib ve numpy çalışmalarınız yakın takipçisi olacağım..

Cevap yazın

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