OpenCV Nedir?

OpenCV Nedir? sorusuna geçmeden önce bilgisayarla görü hakkında bilgi edinelim:

Bilgisayarla Görü Nedir?

Bilgisayarla görü, görüntülerin ve videoların nasıl depolandıklarını ve onlardan nasıl veri alabileceğimizi anladığımız bir süreçtir. Bilgisayarla Görme, Yapay Zeka için temeldir ve çoğunlukla kullanılır. Computer-Vision, sürücüsüz arabalarda, robotlarda ve fotoğraf düzeltme uygulamalarında önemli bir rol oynar.

OpenCV Nedir?

OpenCV, video analizi, görüntü işleme gibi bilgisayarla görü uygulamaları için çok faydalı olan açık kaynak kodlu bir kütüphanedir. OpenCV, C++ ile yazılmıştır ve 2.500’den fazla optimize edilmiş algoritmaya sahiptir. Sıfırdan oluşturmak istemediğimiz bilgisayar vizyonu uygulamaları oluşturduğumuzda, gerçek dünya sorunlarına odaklanmaya başlamak için bu kitaplığı kullanabiliriz. Günümüzde bu kütüphaneyi kullanan Google, Amazon, Microsoft ve Toyota gibi birçok firma bulunmaktadır. Birçok araştırmacı ve geliştirici katkıda bulunur. Windows, Ubuntu ve MacOS gibi herhangi bir işletim sistemine kolayca kullanılabilir.

OpenCV Nasıl Kurulur?

Öncelikle bu kütüphaneyi çalıştırmak için aygıtınıza Python kurulu olması gerekiyor.

Linux işletim sistemine sahip bir bilgisayarda terminale bu kodu girerek OpenCV kütüphanesini indirebilirsiniz:

sudo apt install python3-opencv

MacOS işletim sistemine sahip bilgisayarda kurulum yapmak için:

Öncelikle homebrew ile ile cmake indirmemiz gerekiyor:

brew install cmake 

Ardından buradan open source kısmındaki dosyaları indirmemiz gerekiyor. İsterseniz doğrudan GitHub üzerinden de gerekli dosyaları çekebilirsiniz:

cd ~/<calisma_alani>
git clone https://github.com/opencv/opencv.git
git clone https://github.com/opencv/opencv_contrib.git

OpenCV Basit Kullanım Örnekleri

Görüntü Okuma

variable= cv2.imread(‘görüntü dosya yolu’)

Örnek kullanımı:

img = cv2.imread('devreyakan.jpg')
cv2.imshow('OutputImage', img)

Görüntü Yazma

variable= cv2.imwrite(‘görüntü dosya yolu’)

Örnek kullanımı:

img = cv2.imread('devreyakan')
cv2.imshow('Orjinal görüntü', img)

Görüntü Bilgilerini Alma

Yükseklik ve genişlik piksel değerleri gibi bir görüntünün şekil değerini sağlar.

img = cv2.imread('devreyakan.jpg')

Artık yazdırma yöntemini kullanarak görüntü şeklini yazdırabilirsiniz:

print(img.shape)
  (320, 240, 3)
print("Yükseklik değeri : ", img.shape[0])
Yükseklik değeri: 320
print("Genişlik değeri : ", img.shape[1])
Genişlik değeri: 240

Görüntü Döndürme

OpenCV kütüphanesini kullanarak görüntüleri kolayca döndürebiliriz.

img = cv2.imread("devreyakan.jpg")
height, width = img.shape[: 2]
rotation_matrix = cv2.getRotationMatrix2D((width / 2, height / 2), 70, .5)
rotated_image = cv2.warpAffine(img, rotation_matrix, (width, height))
cv2.imshow('Döndürülmüş görüntü', rotated_image)
cv2.imshow('Ham görüntü', img)

Görüntü Dönüştürme

cv2.transpose() işlevini kullanarak bir görüntüyü doğrudan 90 derecede döndürmek için devrik yöntemini kullanabiliriz.

img = cv2.imread('photo.jpg')
rotated_image = cv2.transpose(img)
cv2.imshow('Döndürülmüş görüntü', rotated_image)
cv2.imshow('Ham görüntü', img)

Video Çekimi

OpenCV, cv2.VideoCapture() olan videoyu okuma işlevine sahiptir. İşlev parametresindeki 0 geçişini kullanarak web kameramıza erişebiliriz. CCTV görüntülerini yakalamak istiyorsanız, video analizi için gerçekten yararlı olan işlev parametresinde RTSP url’sini kullanmalısınız.

video = cv2.VideoCapture(0)
check, frame = video.read()

Görüntü Kırpma

Görüntüyü kırpmak istiyorsanız, aşağıdaki kodu kullanarak OpenCV’de bunu kolayca yapabilirsiniz.

img = cv2.imread("photo.jpg")
height, width = img.shape[: 2]
start_row, start_col = int(height * .15), int(width * .15)
end_row, end_col = int(height * .65), int(width * .65)
cropped = img[start_row: end_row, start_col: end_col]
cv2.imshow('ham görüntü', img)
cv2.imshow('kırpılmış görüntü', cropped)

Görüntü Bulandırma

img = cv2.imread("photo.jpg")
cv2.imshow('ham görüntü', img)
cv2.waitKey(0)
kernel = np.ones((7, 7), np.float32) / 49
blurred = cv2.filter2D(img, -1, kernel)
cv2.imshow('bulanık görüntü', blurred)

Görüntü Piramidi

img = cv2.imread("devreyakan.jpg")
smaller = cv2.pyrDown(img)
larger = cv2.pyrUp(img)
cv2.imshow('original image', img)
cv2.imshow('smaller image', smaller)
cv2.imshow('larger image', larger)

Kenar Tespiti

canny = cv2.Canny(img, 20, 170)
cv2.imshow('tespit edilen', canny)

Yorum yapma özelliği, forum tarafından gelen istek sebebiyle kapatılmıştır. Lütfen tartışmalar ve sorularınız için topluluk forumumuza katılın.