Merhaba arkadaşlar, Mobilhanem.com sitemizde Python ile Görüntü İşleme Dersleri eğitim serisine kaldığımız yerden devam ediyoruz. Geçen dersimizde filtreleme işlemleri dersine ait Renk Filtreleme İşlemi’nden bahsettik. Python ile Görüntü İşleme dersinde bu hafta ise OpenCv’de Bulanıklaştırma İşlemi dersine başlayacağız. Eğer bir önceki dersimizi inceleme fırsatınız olmadıysa Renk Filtreleme İşlemi dersimize buradan ulaşabilirsiniz.
Filtreleme İşlemleri dersimizde işleyeceğimiz konu başlıklarını tekrar sıralayalım.
Renk Filtreleme- Bulanıklaştırma
- Video Üzerinde Canny ile Kenar Tespiti
- Canny Yöntemi ile Resimde Kenar Tespiti
- Basit Eşit Filtreleme
- Gauss ve Mean Adaptif Filtrelemeler
- Otsu Yöntemi ile Eşit Filtreleme
- Eşit Filtreleme Yöntemi ile Metin Netleştirme
Listemizden sırayla ilerlemeye devam ediyoruz. Renk filtreleme işlemi konusunu geçen dersimizde bitirmiştik. Bu haftaki konumuz olan OpenCv’de Bulanıklaştırma İşlemi dersine başlayabiliriz.
OpenCv’de Bulanıklaştırma İşlemi
Geçen dersimizde renk filtreleme işlemi gerçekleştirdiğimiz kod bloklarımız üzerinden devam edeceğiz.
import cv2 import numpy as np kamera = cv2.VideoCapture(0) while(True): ret, bilgisayarKamerasi = kamera.read() hsv=cv2.cvtColor(bilgisayarKamerasi,cv2.COLOR_BGR2HSV) baslangic_altMavi=np.array([100,60,60]) bitis_ustMavi=np.array([140,255,255]) maskeleme=cv2.inRange(hsv,baslangic_altMavi,bitis_ustMavi) filtreli_goruntu=cv2.bitwise_and(bilgisayarKamerasi,bilgisayarKamerasi,mask=maskeleme) cv2.imshow('Orjinal Goruntu (Bilgisayar Kamerasi)',bilgisayarKamerasi) cv2.imshow('Maskeli Goruntu (Bilgisayar Kamerasi)',maskeleme) cv2.imshow('Filtrenlemis Goruntu (Bilgisayar Kamerasi)',filtreli_goruntu) if cv2.waitKey(25) & 0xFF == ord('x'): break kamera.release() cv2.destroyAllWindows()
Geçen dersimizde anlık alınan görüntü üzerinden mavi renk için filtreleme işlemini gerçekleştirmiştik. Mavi rengi filtreleme işlemin ardından da filtrelemesi yapılan görüntüyü bulanıklaştırma işlemine tabii tutacağız.
Filtreleme için bir görüntü üzerinde tek tek gezecek olan 10×10 boyutunda bir gezici bir çekirdek oluşturacağız (No-1). Daha sonra ise oluşturduğumuz filtreleme çekirdeği bir görüntüyü birleştirmemiz gerekecektir.
import cv2 import numpy as np kamera = cv2.VideoCapture(0) while (True): ret, bilgisayarKamerasi = kamera.read() hsv = cv2.cvtColor(bilgisayarKamerasi, cv2.COLOR_BGR2HSV) baslangic_altMavi = np.array([100, 60, 60]) bitis_ustMavi = np.array([140, 255, 255]) maskeleme = cv2.inRange(hsv, baslangic_altMavi, bitis_ustMavi) filtreli_goruntu = cv2.bitwise_and(bilgisayarKamerasi, bilgisayarKamerasi, mask=maskeleme) gezici_cekirdek=np.ones((10,10),np.float32)/100 # No-1 cv2.imshow('Orjinal Goruntu (Bilgisayar Kamerasi)', bilgisayarKamerasi) cv2.imshow('Maskeli Goruntu (Bilgisayar Kamerasi)', maskeleme) cv2.imshow('Filtrenlemis Goruntu (Bilgisayar Kamerasi)', filtreli_goruntu) if cv2.waitKey(25) & 0xFF == ord('x'): break kamera.release() cv2.destroyAllWindows()
Yukarıdaki kod bloğunda No-1 açıklama satırlı olan kısımda 10×10’luk çekirdek ile bir ortalama alma filtresi oluşturmuş oluyoruz. Çekirdeğimizi oluşturduktan sonra bu gezici çekirdek ile alınan filtrelenmiş görüntüyü birleştirmek için cv.filter2D fonksiyonunu kullanacağız (No-2).
import cv2 import numpy as np kamera = cv2.VideoCapture(0) while (True): ret, bilgisayarKamerasi = kamera.read() hsv = cv2.cvtColor(bilgisayarKamerasi, cv2.COLOR_BGR2HSV) baslangic_altMavi = np.array([100, 60, 60]) bitis_ustMavi = np.array([140, 255, 255]) maskeleme = cv2.inRange(hsv, baslangic_altMavi, bitis_ustMavi) filtreli_goruntu = cv2.bitwise_and(bilgisayarKamerasi, bilgisayarKamerasi, mask=maskeleme) gezici_cekirdek=np.ones((10,10),np.float32)/100 # No-1 bulaniklastirma=cv2.filter2D(filtreli_goruntu,-1,gezici_cekirdek) #No-2 cv2.imshow('Maskeli Goruntu (Bilgisayar Kamerasi)', filtreli_goruntu) cv2.imshow('Bulaniklastirilmis Goruntu (Bilgisayar Kamerasi)', bulaniklastirma) if cv2.waitKey(25) & 0xFF == ord('x'): break kamera.release() cv2.destroyAllWindows()
Son olarak imshow fonksiyonumuzu kullanarak filtrelenmiş görüntüyü ve bu filtrelenmiş görüntü üzerinde yaptığımız bulanıklaştırmayı ekranımızda gösteriyoruz.
Mobilhanem.com da Python ile Görüntü İşleme serisinde bir dersin daha sonuna geldik. Bu hafta Python ile Görüntü İşleme dersimizde OpenCv’de Bulanıklaştırma İşlemi yaptık. Umarım sizin için faydalı bir yazı olmuştur. Bir sonraki Video Üzerinde Canny ile Kenar Tespiti dersinde görüşmek üzere. Eksik ya da yanlış gördüğünüz bir şey varsa lütfen iletişime geçmekten çekinmeyin. Sorularınızı buradan sorabilirsiniz.
Tüm Görüntü İşleme Dersleri için tıklayınız.
Kaynak: Link1
15
Neden devamı gelmedi ki çok güzeldi 🙁