OpenCV-Python Uygulamaları-1

Pazartesi, Haziran 05, 2017 , , , , 2 Comments


Ubuntuda OpenCV-Python Nasıl Kurulur?  dedikten sonra bu yazı Opencv-Python ile görüntü işleme uygulamalarının ABC'si gibidir. Keyifli okumalar,kodlamalar.

Kullanılan Sistem Özellikleri: Ubuntu 16.04 LTS, OpenCV 3.2, Python 3.5.2

Hedefler

Burada bir görüntünün nasıl okunabileceğini, nasıl düzenlenebileceğini ve nasıl geri kaydedilebileceğini öğreneceğiz.
Kullanılacak fonksiyonlar: cv2.imread () , cv2.imshow () , cv2.imwrite ()
Matplotlib ile görüntüyü nasıl kullanabileceğimizi göreceğiz.

Bir Resmi Okuma

Bir resmi okumak için cv2.imread () fonksiyonu kullanılır. Resim çalışma dizininde olmalıdır veya tam bir resim yolu verilmelidir.
İkinci parametre, resmin okunması şeklini belirten bir bayraktır(flag).

  • cv2.IMREAD_COLOR: Renkli bir resim yükler. Görüntünün saydamlığı ihmal edilir. Varsayılan bayraktır(flag).
  • cv2.IMREAD_GRAYSCALE: Gri tonlama modunda görüntü yükler.
  • cv2.IMREAD_UNCHANGED: Alfa kanalı da dahil olmak üzere görüntüyü yükler.

Biraz kodlama zamanı:
import numpy as np
import cv2
#Gri tonlarda bir resim yükle
img = cv2.imread('esogu.jpg',0)

Uyarı:

Eğer resim yolu yanlışsa, herhangi bir hata almadığınız halde hiçbir sonuç göremezsiniz.

Görüntüyü Göster

Bir resmi görüntülemek için cv.imshow() fonksiyonu kullanılır. Pencere otomatik olarak görüntü boyuna uyar.
İlk parametre bir dizi(string) adıdır. İkinci parametre ise bizim imajımızdır. İstediğimiz kadar görüntü oluşturabiliriz ama farklı isimler kullanmak şartı ile.
cv2.imshow ('resim' , img) #resim adında bir pencerenin içinde bizim görüntüyü gösterir.
cv2.waitKey(0)
cv2.destroyAllWindows ()
Pencerenin ekran görüntüsü aşağıdaki gibidir.

cv2.waitKey() bir klavye bağlama fonksiyonudur. Bu fonksiyon herhangi bir klavye olayı için belirtilen milisaniyeleri bekler. O süre zarfında bir tuşa basarsanız program devam eder. Eğer "0" ataması yapılırsa sonsuza kadar bekler.
cv2.destroyAllWindows() kabaca açıklamak gerekirse oluşturulan bütün pencereleri yok ediyor. Herhangi bir pencereyi yok etmek istiyorsak pencere adını parantez içine yazmak yeterli.

Resmi Kaydetme

Bir resmi kaydetmek için cv2.imwrite() fonksiyonu kullanılır. İlk parametre dosya adı, ikinci parametre ise kaydetmek istediğimiz görüntüyü temsil eder.
cv2.imwrite('esogu.png' , img)
Bu resmi PNG formatında çalışılan dizine kaydeder.

Özet:

Aşağıdaki program gri tonlamalı bir görüntüyü yükler, eğer 's' tuşuna basarsanız görüntüyü kaydedip çıkar. 'ESC' tuşuna basarsanız kaydetmeden çıkar.
import numpy as np
import cv2
img = cv2.imread('esogu.jpg',0)
cv2.imshow('image',img)
k = cv2.waitKey(0)
if k == 27: #ESC tuşunu bekler..
cv2.destroyAllWindows()
elif k == ord('s'): #Kayıt için 's' tuşunu bekler..
cv2.imwrite('esogu.png', img)
cv2.destroyAllWindows()

Matplotlib


Matpltlib Python için tasarlanmış, çok çeşitli çizim yöntemleri sunan bir kütüphanedir(library). Sonraki yazılarda bu kütüphane çokça kullanılacak. Burada ufak bir giriş yapmak adına görüntüyü Matplotlib ile nasıl açabileceğimizi göreceğiz. Matplotlib kullanarak resimleri kolayca yakınlaştırıp, uzaklaştırabilir ve kayıt işlemi yapabiliriz.
import numpy as np
import cv2
from matplotlib import pyplot as plt

img = cv2.imread('esogu.jpg',0)
plt.imshow(img, cmap = 'gray', interpolation = 'bicubic')
plt.show()
Bu işlemin sonucu aşağıdaki gibi olacaktır.

Kaynak dosyaları ve Resimleri indirmek için: TIKLAYINIZ
Kaynakça:  http://docs.opencv.org/3.2.0/

2 yorum: