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 Görüntü işlemede kullanacağımız ortamların kurulumlarını yaptık. Python ile Görüntü İşleme dersinde bu hafta ise OpenCv’de Resim Okuma, Yazma İşlemleri ve Resim Özellikleri‘nden bahsedeceğiz. Eğer bir önceki dersimizi inceleme fırsatınız olmadıysa Python ile Görüntü İşleme Ortam Kurulumları dersimize buradan ulaşabilirsiniz.
OpenCv’de Temel İşlemler dersimizde işleyeceğimiz konu başlıklarını sıralayalım.
- Resim Okuma ve Yazma İşlemleri
- Resim Özellikleri
- Resim Çerçeveleme İşlemi
- Çözünürlüğe göre pencere boyutlandırma
- Format ve Çözünürlük Değiştirme
- Resim üzerinde piramit oluşturma (Görüntü işleme durumlarına göre resim boyutlandırma)
- Resime Dörtgen Ekleme
- Resime Çizgi ve Daire Ekleme
- Resime Metin Ekleme İşlemleri
OpenCv’de Temel İşlemler bölümünde belirlediğimiz konu başlıklarını belirli zaman aralıklarıyla bitireceğiz. Bu hafta OpenCV’de Resim Okuma ve Yazma İşlemleri ile Resim Özellikleri konu başlıkları ile başlayalım.
Resim Okuma ve Yazma İşlemleri
Ortam kurulumları dersiden yeni bir proje oluşturmuştuk. Oluşturduğum projemizde yeni python çalışma dosyamı oluşturdum. İsmini goruntu_isleme_1 olarak verdim. Sizde dilediğiniz şekilde isim verip başlangıcı yapabilirsiniz. Çalışma dosyamızı oluşturtuktan sonra sonra OpenCv üzerinden işlemlerini gerçekleştirmemiz için aşağıdaki komut ile OpenCv kütüphanesini projemize dahil edelim.
import cv2
Okuma işlemi yapacağımız resmimizi projemize kopyala / yapıştır işlemi ile projemizin olduğu dizine dahil edelim.
Resmimizi projemize dahil ettik. Şimdi dahil ettiğimiz resmimizi okuma işlemini gerçekleştirelim.
resim = cv2.imread("everest.jpg")
Resmimizi dosyamızdan okurken imread fonksiyonunu kullanıyoruz. Bu fonksiyon ile projemize dahil ettiğimiz resmi, ismi ve uzantısını yazarak okuma yapabilirsiniz. Resmin yolu, çalışma alanımızda olduğu için herhangi bir dosya dolu belirtilmemize gerek kalmıyor.
cv2.imshow("everest",resim)
Okuma işlemi gerçekleştirmek için imshow fonksiyonunu kullanıyoruz. Okuma işlemi yaptığımız resim değişkenini ve pencerede gösterilecek olan resim adını parametre olarak imshow fonksiyonuna gönderiyoruz. Resmi okuduktan sonra okuma işlemini yaptığımız resmi pencere halinde açıldığını görebiliriz. Fakat bu çok kısa bir süre içerisinde olur ve pencereniz açık halde kalmaz. Pencere açıldıktan sonra sabit kalmasını ve herhangi bir tuşa bastıktan sonra pencerenin kapanmasını istiyorsak aşağıda bulunan waitKey ve destroyAllWindows fonksiyonlarını kullanabilirsiniz.
cv2.waitKey(0) cv2.destroyAllWindows()
Yukarıdaki kod bloğunu çalışma alanımızdaki kod bloğumuza ekleyelim.
import cv2 resim = cv2.imread ("everest.jpg") cv2.imshow("everest",resim) cv2.waitKey(0) cv2.destroyAllWindows()
Run tuşuna bastıktan sonra projemize eklediğimiz resmi pencere halinde açıldığını ve ekranda kaldığını göreceksiniz. Herhangi bir tuşa bastığınız zamanda ekranımız kapanacaktır.
resim = cv2.imread("everest.jpg",0)
Resmi okuma işleminde imread fonksiyonuna gördüğünüz gibi 0 (Sıfır) parametresini gönderdim. Bu “0 (Sıfır)” parametresi ile resmi gri tona çekiyoruz. Çeşitli işlemlerimizde resimlerimizi gri tona çevirip bu gri ton üzerinden filtreleme işlemi yapacağız. Daha sonra gri tonu orijinal görüntü ile birleştirip kullanıcıya sunacağız.
import cv2 resim = cv2.imread("everest.jpg",0) cv2.imshow("everest",resim) cv2.waitKey(0) cv2.destroyAllWindows()
Şimdi ise bu gri tonlu resmimizi kaydedelim. OpenCv’de imwrite komutunu ile bu işlemi gerçekleştireceğiz.
cv2.imwrite("everestgri.png",resim)
Gri tona çevirdiğimiz resim değişkenini parametre olarak imwrite fonksiyonuna gönderelim.
import cv2 resim = cv2.imread("everest.jpg", 0) cv2.imshow("everest", resim) cv2.imwrite("everestgri.png",resim) cv2.waitKey(0) cv2.destroyAllWindows()
Derleme işlemini yaptıktan sonra sol tarafta bulunan Project kısmında “everestgri.png” adından bir resim oluştuğunu göreceksiniz.
Resim Özellikleri
Bu işlemlerden sonra resimlerimizdeki bazı özellikleri incelemek için uygulayacağımız bazı küçük işlemlere birlikte bakalım. Mevcut resmimizde herhangi bir pikselin renk değerini görüntülemek için;
# Mavi Renk İçin "0" Parametresi # Yeşil Renk İçin "1" Parametresi # Kırmızı Renk İçin "2" Parametresi
kullanacağız. 200×200 lük bir parça için Mavi, Yeşil ve Kırmızı renk tonlarına bakalım.
print ("200x200'lük Alan İçin Mavi Renk Değeri:" + str(resim.item (200,200,0))) print ("200x200'lük Alan İçin Yeşil Renk Değeri:" + str(resim.item (200,200,1))) print ("200x200'lük Alan İçin Kırmızı Renk Değeri:" + str(resim.item (200,200,2)))
Bu kodlarımızı mevcut kodlarımıza ekleyerek kontrolümüzü yapalım. Daha sonrada konsol ekranımızı kontrol edelim.
import cv2 resim = cv2.imread("everest.jpg") cv2.imshow("everest", resim) print("200x200'lük Alan İçin Mavi Renk Değeri:" + str (resim.item (200,200,0))) print("200x200'lük Alan İçin Yeşil Renk Değeri:" + str (resim.item (200,200,1))) print("200x200'lük Alan İçin Kırmızı Renk Değeri:" + str (resim.item (200,200,2))) cv2.waitKey(0) cv2.destroyAllWindows()
200×200’lük alandaki Mavi değerimiz 255’lik değer üzerinden 71, yeşil değerimizi 255’lik değer üzeriden 42, kırmızı değerimiz ise 255’lik değer üzerinden 11 olarak görüyoruz. Ayrıca 200×200’lük alanda da en yüksek değerimiz mavi renk olduğunu görebiliyoruz.
Şimdi ise projemize dahil ettiğimiz resmimizin boyutunu (genişlik ve yükseklik) kontrol edelim. Bu boyutunu elde etmek için resim.shape kullandık. Burada yükseklik için 0(Sıfır) index değerini, genişlik için 1 index değerini kullanıyoruz.
yukseklik = resim.shape[0] genislik = resim.shape[1]
Şimdi ise yukarıda bulunan kodumuzuda dahil edip kodumuzu derleyelim.
resim=cv2.imread("everest.jpg") cv2.imshow("everest",resim) yukseklik = resim.shape[0] genislik = resim.shape[1] print('Resim Yüksekliği (px) :', yukseklik) print('Resim Genişliği (px) :', genislik) cv2.waitKey(0) cv2.destroyAllWindows()
Derleme sonrası konsol ekranımızda resmimizin boyutlarını elde ettik.
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 Resim Okuma, Yazma İşlemleri ve Resim Özellikleri‘nden bahsettik. Umarım sizin için faydalı bir yazı olmuştur. Bir sonraki OpenCv ‘de Temel İşlemler Bölüm-2 dersinde görüşmek üzere. Eksik ya da yanlış gördüğünüz bir şey varsa lütfen iletişime geçmekten çekinmeyin.
Tüm Görüntü İşleme Dersleri için tıklayınız.
Kaynak: https://docs.opencv.org/master/d4/da8/group__imgcodecs.html
43
Yorum Yaz