OpenCV Nedir?
Müfredat
Bu bölüm, kursun iki günlük müfredatını ayrıntılı bir şekilde ele alır. Her ders, öğrenim hedeflerine ve konularına göre ayrılmıştır.
Lütfen derslerin sırasına ve içeriğine dikkat edin. Her bir konu, bir önceki üzerine kuruludur.
Gün 1
Gün 1, OpenCV'nin temellerini öğrenmeye odaklanır ve görüntü işlemeyle alakalı temel kavramlarla başlar.
Ders 1: Giriş
Gidişat
OpenCV Nedir
OpenCV Kurulumu
Ders 2: Temeller
OpenCV ile Video ve Resimlerin Okunması
Resizing and Rescaling Frames
Drawing Shapes & Putting Text
Ders 3: Fonksiyonlar ve Transformasyonlar
OpenCV'de çok kullanılan 5 fonksiyon
Resim Transformasyonları
Kenar Tespiti
Ders 4: Renkler ve Filtreler
Renk Alanları
Renk Kanalları
Blurlama
Ders 5: İnteraktif Uygulamalar
İnteraktif Resim Tamamlama
Gün 2
Gün 2, daha ileri seviye konulara ve spesifik uygulamalara derinlemesine bir dalış sunar.
Ders 6: İleri Seviye İşlemler
Bitwise Operasyonları
Maskeleme
Ders 7: Analiz ve Ölçüm
Thresholding
Histogramlar
Ders 8: Tespit ve Tanıma
Kenar Tespiti
Haar Cascade
Ders 9: Nesne Tespiti
Detaylı Nesne Tespiti Teknikleri
Ders 10: Proje
Örnek Proje
OpenCV Nedir?
1. Görüntü Nedir?
Görüntü Fiziksel dünyadaki bir cismin üzerinden yansıyan ışığın bir noktada toplanması ile oluşan yapıdır. Gözlerimiz görüntüyü 2 boyutlu ve 3 renkli şekilde algılar ve beynimize iletir.
Sanal görüntü ise kamera ve diğer görüntü elde etme araçları ile cisimlerin belirli şekillerde sanal ortamda ifade edilmesidir. Bu resimler farklı formatlarda kullanıcılara sunulabilir. Bu formatalara png, jpeg, jpg, gif
, ve svg
örnek verilebilir. Her bir formatın kendine ait bazı özellikleri vardır.
2. Görüntü İşleme Nedir?
Görüntü işleme, dijital görüntülerin analizi, manipülasyonu ve işlenmesi için kullanılan bir bilgi işlem disiplinidir. Görüntü işleme teknikleri, bir veya daha fazla dijital görüntüyü alır ve bunları farklı amaçlar için kullanılabilir hale getirir.
Görüntü işleme teknikleri, temel olarak iki kategoriye ayrılabilir:
- Düşük seviye görüntü işleme: Görüntülerin temel özellikleri (örneğin parlaklık, kontrast, renk, kenarlar vb.) üzerinde işlem yapar. Bu işlemler, görüntülerin daha net, daha canlı veya daha kolay yorumlanabilir hale getirilmesine yardımcı olabilir.
- Yüksek seviye görüntü işleme: Görüntülerin anlamlı içeriği üzerinde işlem yapar. Bu işlemler, örneğin nesne tanıma, yüz tanıma, karakter tanıma ve görüntü sıkıştırma gibi daha karmaşık işlemleri içerir.
Görüntü işleme teknikleri, çok çeşitli uygulamalarda kullanılabilir. Bunlardan bazıları şunlardır:
- Tıp: Röntgen, MR, ultrason ve tomografi gibi tıbbi görüntüleme teknolojileri, dokuların iç yapısını görüntülemek için kullanılır. Görüntü işleme teknikleri, bu görüntülerin analizi için kullanılabilir ve dokuların teşhisinde, tespitinde ve tedavisinde yardımcı olabilir.
- Otomotiv: Görüntü işleme teknikleri, sürücüsüz araçlar, araç takip sistemleri ve park yardımcısı gibi otomotiv uygulamalarında kullanılır. Bu teknikler, araçların çevresini görüntüleyerek, nesneleri tespit ederek ve çarpışmaları önleyerek güvenliği artırabilir.
- Güvenlik: Görüntü işleme teknikleri, kamera sistemleri, yüz tanıma sistemleri ve hareket algılama sistemleri gibi güvenlik uygulamalarında kullanılır. Bu teknikler, tehlikeli durumları tespit ederek, hırsızlıkları önleyerek ve suçluların yakalanmasına yardımcı olabilir.
- Sanat: Görüntü işleme teknikleri, sanat eserlerinin restorasyonu, dijital sanat eserlerinin oluşturulması ve sanatsal ifadelerin analizi gibi sanatsal uygulamalarda kullanılır.
Görüntü işleme teknikleri, farklı sektörlerde birçok farklı uygulamada kullanılabilir ve hızla gelişen bir teknolojidir.
3. Pixel ve Vektör Kavramları
Elbette, pixel ve vektör kavramlarını açıklayabilirim ve SVG ve JPG formatları arasındaki farkları da karşılaştırabilirim.
Pixel, bir dijital görüntünün temel bileşenidir ve bir piksel, görüntü üzerindeki en küçük renkli noktadır. Bir piksel, bir kare veya dikdörtgen şeklinde olabilir ve belirli bir renk ve parlaklık değeriyle tanımlanır. Bir pikselin boyutu, dijital görüntünün çözünürlüğüne bağlıdır ve daha yüksek çözünürlüklü bir görüntü, daha küçük pikseller içerecektir. Örneğin, 1080p çözünürlüğüne sahip bir televizyon, 1920 x 1080 piksel boyutunda bir görüntü oluşturur.
Vektör, matematiksel formüller ve eğriler kullanılarak oluşturulan bir grafik türüdür. Vektör grafikleri, sınırsız ölçeklenebilirlik özelliğiyle birlikte gelir, yani bir vektör grafik, ne kadar büyük veya küçük ölçeklenirse ölçeklensin her zaman net ve keskin kalacaktır. Vektör grafikler, piksel tabanlı (raster) grafiklerden farklı olarak, şekillerin ve çizgilerin keskinliğini korumak için hiçbir çözünürlük kaybı yaşamazlar. Vektör grafikleri, genellikle logolar, işaretler ve grafik tasarımları oluşturmak için kullanılır.
SVG (Scalable Vector Graphics) ve JPG (Joint Photographic Experts Group) formatları, farklı türde grafikleri depolamak ve paylaşmak için kullanılan iki farklı dosya biçimidir.
SVG, vektör grafiklerini depolamak için kullanılan bir dosya biçimidir. Bu dosya biçimi, grafiklerin sınırsız ölçeklenebilirliği ve internet üzerinde kolayca görüntülenebilmesi özellikleri sayesinde web tasarımında sıkça kullanılır. SVG dosyaları, kod tabanlı oldukları için dosya boyutları daha küçüktür ve hızlı bir şekilde yüklenirler.
JPG, piksel tabanlı (raster) grafikleri depolamak için kullanılan bir dosya biçimidir. Bu dosya biçimi, dijital fotoğrafların depolanması ve paylaşılması için yaygın olarak kullanılır. JPG dosyaları, sıkıştırma yöntemleri kullanılarak dosya boyutlarının küçültülmesine olanak tanır. Ancak sıkıştırma işlemi, görüntü kalitesinde kayıplara neden olabilir.
Genel olarak, SVG dosyaları vektör grafikleri depolamak için kullanılırken, JPG dosyaları diğer fotoğrafları saklamak için kullanılır.
4. OpenCV Nedir?
Open Source Computer Vision Library (OpenCV), dünya çapında araştırmacılar, geliştiriciler ve teknoloji meraklıları tarafından yaygın olarak kullanılan açık kaynaklı bir bilgisayar görüşü kütüphanesidir.
OpenCV, gerçek zamanlı görüntü işleme yetenekleri ile bilgisayar görüşü ve makine öğrenimi projeleri için kapsamlı bir çerçeve sunar. Hem akademik hem de endüstriyel çevrelerde popülerdir ve geniş bir uygulama yelpazesine sahiptir.
5. OpenCV'nin Kullanım Alanları
OpenCV'nin uygulamaları çok çeşitlidir ve gündelik yaşamın birçok farklı yönünü etkileyebilir:
- Yüz tanıma: Güvenlik sistemlerinde, sosyal medya platformlarında ve kişisel fotoğraf kütüphanelerinde kullanılır.
- Araç içi sistemler: Sürücüsüz araç geliştirme ve trafik işareti tanıma gibi alanlarda kullanılır.
- Tıbbi görüntüleme: Hastalıkların teşhisi ve cerrahi planlama için kullanılır.
- Endüstriyel otomasyon: Üretim hatlarında kusur tespiti gibi işlemlerde kullanılır.
- Video analizi: Güvenlik izleme ve müşteri davranış analizi gibi alanlarda kullanılır.
OpenCV ile çalışırken, işlenen görüntülerin ve videoların gizlilik ve etik normlara uygun olarak kullanılması gerektiğini unutmayın. Görüntü işleme uygulamaları geliştirirken kullanıcıların ve toplumun gizlilik haklarını göz önünde bulundurun.
6. Yapay Zekada OpenCV'nin Önemi
OpenCV, yapay zeka dünyasında temel bir araçtır ve özellikle görüntüyle ilgili problemlerde kritik bir rol oynar:
Görüntü tanıma, nesne tespiti ve görüntü sınıflandırma gibi görevlerde OpenCV'nin sağladığı fonksiyonlar ve algoritmalar, yapay zeka sistemlerinin temel taşlarından biridir.
OpenCV Kurulumu Nasıl Yapılır?
Open Source Computer Vision Library (OpenCV) ve onun contrib sürümü, bilgisayar görüşü ve makine öğrenimi projelerinde geniş bir şekilde kullanılmaktadır. Contrib sürümü, standart OpenCV kütüphanesine ek olarak, deneysel ve yenilikçi özellikler içermektedir.
OpenCV'nin contrib sürümünü kurmadan önce, sisteminizde Python'un yüklü olduğundan emin olun. OpenCV Python bağlayıcısı, Python 3.x ile uyumludur.
Adım 1: Python ve Pip'in Yüklü Olduğundan Emin Olun
Python'un yüklü olup olmadığını kontrol etmek için terminal veya komut istemcisine aşağıdaki komutu yazın:
python --version
Pip'in yüklü olup olmadığını kontrol etmek için:
pip --version
Eğer Python veya Pip yüklü değilse, resmi Python web sitesi üzerinden indirip yükleyebilirsiniz.
Adım 2: OpenCV ve OpenCV Contrib Kütüphanelerini Yükleme
Pip aracılığıyla OpenCV ve OpenCV Contrib kütüphanelerini aşağıdaki komut ile yükleyebilirsiniz:
pip install opencv-python opencv-contrib-python
Eğer belirli bir OpenCV sürümüne ihtiyacınız varsa, komut sonuna ==sürüm_numarası
ekleyerek istediğiniz sürümü yükleyebilirsiniz. Örneğin, OpenCV'nin 4.5.2 versiyonunu yüklemek için pip install opencv-python==4.5.2 opencv-contrib-python==4.5.2
kullanabilirsiniz.
Adım 3: Kurulumun Başarılı Olduğunu Kontrol Etme
Kurulumun başarılı bir şekilde tamamlandığını kontrol etmek için Python konsoluna şu komutları yazın:
import cv2
print(cv2.__version__)
Bu komut, yüklenen OpenCV sürümünü ekrana yazdıracaktır. Eğer bir hata almadan sürüm numarasını görebiliyorsanız, kurulum başarıyla tamamlanmıştır.
OpenCV'nin contrib sürümü, standart sürüme göre daha fazla özelliğe sahip olduğu için, bazı projelerde standart sürüm yerine bu sürümün kullanılması tavsiye edilir.