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.