C++ Görüntü İşleme Görüntü İşleme

OpenCV ile Görüntü İşleme 1

Merhaba. Bu dersimizde C++ programlama dili ile görüntü işleme yaparken kullanacağımız OpenCV kütüphanesinden ve kurulumundan bahsedeceğim.


OpenCV Nedir?

En temel manasıyla bir görüntü işleme kütüphanesidir diyebiliriz. Açılımı Open Source Computer Vision Library şeklindedir. Yani Açık Kaynaklı Bilgisayar Görüntü Kütüphanesi anlamına gelmektedir. Bilgisayar ortamında çeşitli yazılım ve kodlarla istediğimiz resimler üzerinde işlem yapabilmemizi sağlayan bir kütüphanedir.


Temel OpenCV Kütüphaneleri:

OpenCV kütüphanesindeki bazı alt kütüphaneler kendi içlerinde modüllere ayrılmıştır:

  • opencv_core : Temel veri yapıları, Aritmetik fonksiyonlar ve Temel fonksiyonlar yer almaktadır.
  • opencv_calib3d : Kamera kalibrasyon, stereo fonksiyonları ve 2 boyutlu uzay bilgisi tahmini yer almaktadır.
  • opencv_objdetect : Yüz tanıma, insan işaretleme gibi algılama fonksiyonlar yer almaktadır.
  • opencv_highgui : Resim ve Video Okuma/Yazma işlemleri ve bazı basit kullanıcı arayüzleri yer almaktadır.
  • opencv_features2d : Görüntü özellikleri ayırımı ve özellik karşılaştırma ile ilgili fonksiyonlar yer almaktadır.
  • opencv_video : Hareket çıkarımı, özellik işaretleme ve arka plan ayırımı gibi fonksiyon ve sınıflar yer almaktadır.
  • opencv_imgproc : Temel görüntü işleme fonksiyonları yer almaktadır.¹

Desteklediği Platformlar:

C ++, C, Python ve Java arayüzlerine sahip olan OpenCV kütüphanesinin desteklediği platformlar:

Masaüstü Platformlar:

  • Windows
  • Linux
  • Mac OS
  • FreeBSD
  • NetBSD
  • OpenBSD

Mobil Platformlar:

  • iOS
  • Android
  • Maemo
  • BlackBerry

Aynı zamanda desteklediği programlama dilleri:

  • C Programlama Dili
  • C++ Programlama Dili
  • Java Programlama Dili
  • C# Programlama Dili (Resmi olarak desteği yoktur, çeşitli packler ile destek sağlanabilir.)

OpenCV’nin Kullanıma Sunduğu Uygulamaları:

  • 2D ve 3D araç kitleri (2D and 3D feature toolkits)
  • Yüz tanıma sistemi (Facial recognition system)
  • Hareket tanıma (Gesture recognition)
  • İnsan-bilgisayar etkileşimi (HCI)
  • Mobil robotik (Mobile robotics)
  • Hareket anlama (Motion understanding)
  • Nesne tanımlama (Object identification)
  • Segmentasyon ve tanımlama (Segmentation and recognition)
  • Kamera derinlik algılama (Stereopsis stereo vision: depth perception from 2 cameras)
  • Hareket yapısı (SFM)
  • Hareket izleme (Motion tracking)
  • Artırılmış gerçeklik (Augmented reality)

Yukarıdaki alanlardan bazılarını desteklemek için OpenCV bir de makine öğrenme uygulamaları sunmaktadır:

  • Boosting (Güçlendirme)
  • Decision tree learning (Karar ağacı öğrenme)
  • Gradient boosting trees :(Gradyan ağaçları artırmak)
  • Expectation-maximization algorithm (Beklenti maksimizasyon algoritması)
  • K-nearest neighbor algorithm (K-en yakın komşu algoritması)
  • Naive Bayes classifier (Naive Bayes sınıflandırıcısı)
  • Artificial neural networks (Yapay sinir ağları)
  • Random forest (Rastgele orman)
  • Support vector machine (SVM) (Destek vektör makinesi)
  • Deep neural networks (DNN) (Derin sinir ağları)

OpenCV Kurulumu

OpenCV kütüphanesinin kurulumu için yapılması gerekenler:

  1. OpenCV’yi https://goo.gl/jBrVQ4 adresinden indirebilirsiniz. Yaklaşık 115 MB boyutundadır.
  2. İndirdiğimiz setup dosyasını açıyoruz. Setup içerisindeki dosyaları hangi dizine çıkarmak istediğimizi soracaktır. Dosyaları başka dosyalar ile karışmayacak bir dizine çıkarıyoruz.
  3. Çıkardığımız dosyalar içerisinde Opencv >> build >> x64 >> vc14 >> bin dosyasını buluyoruz ve dizini kopyalıyoruz.
    Örnek : C:\Users\Mustafa\Desktop\Dosyalar\Görüntü İşleme\C++\\opencv\build\x64\vc14\bin
  4. Daha sonra Bilgisayarım’a sağ tık yapıp özellikler kısmına giriyoruz.
  5. Sol kısımdan Gelişmiş sistem ayarlarına giriyoruz.
  6. Alt kısımdan ortam değişkenlerine giriyoruz.
  7. Alt kısımdaki sistem değişkenleri bölümünde path kısmını seçiyoruz ve düzenle diyoruz.
  8. Açılan pencerede sağ taraftan yeni diyoruz ve sol tarafta oluşan yeni path dosyasının adına 3. adımda kopyaladığımız dizini yapıştırıyoruz.
  9. Kaydediyoruz ve diğer pencereleri kapatabiliriz. İşlemimiz bu kadardır.

¹ Crc64

Yazar Hakkında

Mustafa Sarıdal

Cyber Security R&D Engineer / PRISMA CSI

Yorum

  • Yazılarınızı takip ediyorum, gayet temiz yazıyorsunuz paylaştığınız için teşekkür ederim. Yapay zeka tabanlı Görüntü işleme uygulaması (c++ ile geliştirilen) üzerine bir proje konusu arıyorum. Bitirme tezi konum olacak, eğer paylaşmak isterseniz önceliğim daha önce yapılmamış bir proje olması onun dışında önemli gördüğünüz bir fikir varsa benimle paylaşabilirseniz çok memnun olurum.

  • Bu işe temel atılması ve giriş için çok faydalı bir makale olmuş elinize sağlık.

Yorum yap

This site uses Akismet to reduce spam. Learn how your comment data is processed.