OpenCv’de Resim Okuma, Yazma İşlemleri ve Resim Özellikleri

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
resim okuma yazma
Resim okuma yazma

Okuma işlemi yapacağımız resmimizi projemize kopyala / yapıştır işlemi ile projemizin olduğu dizine dahil edelim.

resim okuma yazma
Resim-2
resim okuma yazma
Resim-3

 

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 okuma yazma
Çalışır Hali

 

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()

 

resim okuma yazma
Resmin Gri Tonlu Hali

 

Ş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 okuma yazma
Gri Tonlu Resim Oluşturuldu
resim okuma yazma
Resmin Gri Tonlu Halı Gösterimi

 

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()

 

resim özellikleri
Renk Tonlarını Görme

 

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()

 

resim özellikleri
Resmin Boyutları

 

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

Yunus Emre Aydın

Yazılım Mühendisi

Yorum Yaz

Haftalık Bülten

Mobilhanem'de yayınlanan dersleri haftalık mail almak ister misiniz?