Bilgisayarlı Görüş Nedir ?

OpenCV, açık kaynaklı bilgisayarlı görüş kütüphanesidir. Bilgisayarlı görüş makinelere akıl katmanın bir yoludur. İnsan gözünün gördüğü ve anladığı şekilde, bilgisayarların da anlamasını sağlama sanatıdır.
Bilgisayarlı görüş resimleri analiz ederek, anlamlı kullanışlı bilgiler üretir. Kendi kendine sürüş yapabilen araçlar, bu araçlar üzerindeki kamera modülü ile şeritler tespit edilir, yoldaki yaya, önündeki araç tespit edilir. Tüm bunlar bilgisayarlı görüş ile olur. Facebook’da yüklediğimiz fotoğraflar için Facebook, facebook arkadaşlarımızdan kimlerin aynı kare içinde olduğunu tespit ederek onları taglayabileceğimizi söyler. Yİne bu da bilgisayarlı görüş ile sağlanır.
OpenCV’ye Giriş :
- OpenCV, Intel tarafından geliştirilen görüntü işleme kütüphanesidir.
- MAC, Windows, Linux işletim sistemlerinde erişilebilirdir.
- C,C++,Python dilleri ile çalışır.
- Açık kaynaklıdır ve ücretsizdir.
Resim vs Matrix :
Dijital resimler, bilgisayarlar tarafından sayısal matrisler olarak görülürler.
Dijital resimler, bir matrix içinde tutulur.
Bilgisayarlar gri renk uzayında, renkli (RGB,BGR gibi) olarak resimleri görebilirler ve renk uzakları arasında dönüştürme işlemi yapabilirler. Grayscale (gri renk skalası) renk uzayında pikselin ne kadar çok parlak ya da ne kadar karanlık olduğu bilgisi vardır. 0 ile 255 arasındadır bu değer 0’a yaklaştıkça karanlık/siyah, 255’e yaklaştıkça parlak/beyazdır.
Renkli resimlerde RGB, BGR renk uzayında 3 kanal vardır. RED, GREEN, BLUE, OpenCV’de BLUE,GREEN,RED
Ders 1 : OpenCV’de resim nasıl okunur, nasıl gösterilir ve nasıl yeni bir resim olarak kaydedilir ?
import cv2 |
import cv2 ile OpenCV kütüphanesi içeri aktarılır.
Img değişkenine okunan resim yüklenir. cv2.imread 2 argümana sahiptir. Ilk argüman okumak istediğimiz resim, ikinci argüman okunan resmin renkli, siyah/beyaz, alfa kanalı ekleyerek görüntüleme opsiyonları sağlar. İkinci argüman sırasıyla için 1,0,-1 değerleri kullanılmaktadır.
Cv2.imshow ile okumuş olduğumuz ve değişkene aktardığımız resmin gösterimini sağlıyoruz. Cv2.imshow’da cv2.imread gibi 2 ayrı argüman alır. Ilk argüman resmin gösterileceği pencerenin ismi, herhangi bir isim verebilirsiniz. İkinci argüman ise okumuş olduğumuz resme ait değişkenin adı.
Son satırdaki cv2.waitKey ile resmin ekranda ne kadar süre gösterileceğini belirliyoruz. Cv2.waitKey’in aldığı süre değeri milisaniye cinsindendir. Örneğin 5 saniye resmi göstermek isterseniz cv2.waitKey(5000) olarak bir kod yazmak gereklidir. cv2.waitKey için süre 0 olarak tanımlanırsa, herhangi bir tuşa basana kadar resmimiz ekranda bekler.
Not: cv2.imread komutunda dosya isminin ya da uzantısının yanlış olması durumunda herhangi bir hata dönmemektedir. Ancak değişkende herhangi birşey tutulmuyorsa ve print ile yazdırırsak None çıktısını görürüz.


Eğer okumuş olduğumuz değişkendeki resmi print ile yazdırırsak matrix görürüz. Bu değerler resmin piksel değerleridir.
[[[128 138 225] [127 137 224] [126 136 224] … [126 145 236] [110 129 220] [ 86 104 197]] [[127 137 224] [127 137 224] [127 137 224] … [130 150 235] [112 132 217] [ 83 102 189]] [[127 137 224] [127 137 224] [128 138 225] … [127 148 230] [112 133 215] [ 85 105 190]] … [[ 55 21 82] [ 54 20 81] [ 62 28 92] … [ 82 71 175] [ 78 68 175] [ 74 65 175]] [[ 55 18 80] [ 56 19 81] [ 66 32 96] … [ 82 69 177] [ 80 71 181] [ 81 72 183]] [[ 56 19 81] [ 58 21 83] [ 68 34 98] … [ 81 68 176] [ 81 72 183] [ 84 74 188]]] |
Tüm işlemlerimiz bittikten sonra isterseniz son satıra: cv2.destroyAllWindows() komutunu ekleyerek tüm resim gösterimi için kullandığımız pencereleri sonlandırabilirsiniz.
Mevcut resmimizi grayscale renk uzayına dönüştürüp kaydedelim. Kaydetme işlemi için :
cv2.imwrite(‘gray_resim.jpg’,img)
imwrite gördüğünüz gibi 2 argüman alır. Ilk argüman yeni oluşturmak istediğimiz resmin adı ve uzantısı, ikinci argüman ise okumuş olduğumuz resmin saklandığı değişkendir.
Tüm kod satırına göz atalım.
import cv2 |

Klavye tuşlarına basıldıkça belirli aksiyonların alınmasını istiyorsak :
import cv2 |
cv2.waitKey(0) k değişkenine atanmıştır. k değişkeninin değerine göre mevcut resmimizi yeniden kaydetme ya da pencereleri sonlandırma işlemini yapıyor olacağız. 27, klavyemizdeki ESC tuşunu ifade eder.