Skip to main content

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.

Kurs Programı

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 Konuları

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 Konuları

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.

alternative text

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:

  1. 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.
  2. 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.

alternative text

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.

Neden OpenCV?

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.
Dikkat!

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:

OpenCV ve Yapay Zeka

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.

tip

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
caution

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.

note

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.