Opencv C++ Eğitimi

indirGörüntü işleme ile ilgilenenlerin yolu bir şekilde opencv ile kesişmiştir. Opencv den önce Matlabda görüntü işleme ile ilgilenmiştim. Matlab Opencv ye göre çok daha kolay bir dildir ancak programın hızı ve efektif çalışması açısından çok başarılı değildir. Opencv ise götüntü işleme yapanlar için öğrenilmesi ve uygulanması zor olduğu için tercih edilmemektedir. Ancak unutulmamalıdır ki hızı ve etkililiği açısından kullanılabilecek en iyi platformlardan biri Opencv kütüphanesiyle C++ tır.  Öğrenilmesi ve uygulanmasının zor olduğu söylense de üzerinde çalışıldığı zaman ve birazcık emek harcandığı zaman rahatlıkla öğrenilebilir. Eğer opencv yi öğrenebilmek için emek harcarsanız alacağınız sonucu gördüğünüzde bu emeğe değdiğini göreceksiniz.

Peki Opencv yi nasıl öğrenebiliriz? Nereden başlamalıyız? Ben yabancı kaynaklardan öğrendim ve yabancı kaynaklardan öğrenmek biraz zor olabiliyor. Eğitimin en etkili anadilimizde olacağını düşünüyorum. Aşağıdaki linkleri olan videolu Türkçe dersleri takip ederek opencv nin temellerini öğrenebilirsiniz. Temellerini öğrendikten sonra, istediğiniz bir projeyi gerçekleştirmek için alt yapınız oluşacaktır. Eğitimimiz opencv nin kurulup, kütüphanesinin Visual Studio derleyicisine  eklenmesini ve her projenin başında uygulanması gereken adımları işledikten sonra görüntü işlemenin en fazla kullanılan yapılarını renkli obje tanıma ve takibine kadar kapsamaktadır. Daha iyi öğrenebilmek için videoları izledikten sonra kendinize göre çevirerek videoya nadiren bakarak yazmanızı ve oradaki kod parçacıklarını çok iyi anlamaya çalışmanızı öneririm.

Başarı inanç ve kararlılıkta gizlidir. Bu derslerden faydalanırsanız, teknolojinin bir tarafından tutup kendinize, çevrenize ve toplumumuza faydalı olabilirseniz teşekkür olarak bana yeter de artar bile. bu dersleri yayabilir, kendi sitelerinizde paylaşabilirsiniz. Kolay gelsin…

Opencv C++ kurulumu 

Opencv 3 C++ VS 2015 kurulumu 

Opencv C++ Ders 1 (Kütüphane Ekleme)

Opencv C++ Ders 2 (Resim Açma),

Opencv C++ Ders 3 (Boş Resim Oluşturma)

Opencv C++ Ders 4 (Video Okuma)

Opencv C++ Ders 5 (Webcam kullanımı)

Opencv C++ Ders 6 (Resim Yükleme)

Opencv C++ Ders 7 (Webcam Video Kaydetme)

Opencv C++ Ders 8 (Resim Parlaklık Ayarı)

Opencv C++ Ders 9 (Video Parlaklık Ayarı)

Opencv C++ Ders 10 (Kontrast Ayarları)

Opencv C++ Ders 11 (Gri Resim Histogram Eşitleme)

Opencv C++ Ders 12 (Renkli Resim Histogram Eşitleme)

Opencv C++ Ders 13 (Homojen Filtre)

Opencv C++ Ders 14 (Çok Kullanılan Filtreler)

Opencv C++ Ders 15 (Morfolojik İşlemler)

Opencv C++ Ders 16 (Trackbar Ekleme)

Opencv C++ Ders 17 (Trackbar Fonksiyon Kullanarak)

Opencv C++ Ders 18 (Mause Hareketi)

Opencv C++ Ders 19 (Resim Dondurme)

Opencv C++ Ders 20 (Renk Tanıma ve Takip)

Opencv Ders 21 (Haar cascade Sınıflandırıcısı Nedir?)

Opencv Ders 22(Haar Cascade Eğitimi, Nesne Tanıma)

Opencv C++ Ders 23 (Haar Cascade Negatif Örnek Listeleme,Klasör Okuma)

Opencv C++ Ders 24 (Haar Cascade Pozitif Örnek Listeleme, İşaretleme)

Opencv C++ Ders 25 (Webcam ile Negatif Resimler Oluşturma)

Opencv C++ Ders 26 (Webcam ile Pozitif Resimler Oluşturma)

Opencv Ders 27 (Haar Cascade xml Dosya Kullanımı)

Opencv Ders 28 (Haar Cascade Yüz ve Göz Algılama ve Takip)

Opencv C++ Ders 29 (Nokta Takibi)

Opencv C++ Ders 30 (Piksel İşlemleri)

 

34 thoughts on “Opencv C++ Eğitimi

  1. Merhabalar,
    Bir proje üzerinde çalışıyorum.Code block ve openframeworks kullanıcam.Sorum openframework ile opencv arasındaki fark nedir acaba? Opencv ile öğrendiğimi openframeworks ile yapabilir miyim?

  2. Merhabalar,
    opencv belli başlı görüntü işleme fonksiyonlarının hazır olarak sunulduğu kütüphanedir. openframeworks ise çalıştığınız video ya da resim üzerine görsellerin oluşturulabileceği toolkittir. Tabi bunların dışında işlevleri de vardır. Her ne kadar openframeworks toolkitinin opencv yi kapsadığı söylense de opencv bazı alanlarda openframeworkten daha güçlüdür. bunun tersi de geçerlidir. Ben object detection işlemi ile ilgilendiğim için opencv yi kullanmayı seçtim. openframework ile ilgili genel kültür seviyesinde bilgiye sahibim. Onun için yanlış yönlendirmek de istemiyorum. Şu kadarını söyliyim ki opencv de herhangi fotoğraf, video için nesne sınıflandırıcısı oluşturulabilirken yani object detect işi yapabilirken openframeworkte bununla ilgili pek bir paylaşıma rastlamadım. Tabiki kinect kamera kullanımı farklı bir konu. Onun motion ve derinlik kameraları bulunduğu için durum değişiyor. Yapmak istediğiniz şeyler hakkında araştırma yaparak hangisinin kullanımının daha doğru olabileceği sonucunu çıkarabilirsiniz.

  3. Merhabalar ;
    Aklımda bir kamera takip programı yazmak var bu konuda netten baktığım kadarıyla c++ deniyor. Sizin başka bir öneriniz varmıdır. Ona göre uzun soluklu bir çalışma yapacağım ve yazılımı öğrenmeye çalışacağım.
    Teşekürler

    1. Ben de C++ ı önerebilirim. Hızlıdır. object oriented bir dildir. Üstelik opencv ve openframeworks gibi diller için fazlasıyla döküman bulabilirsiniz.

  4. Merhabalar ;

    Konudaki opencv linkinden dosyayı indirdim. Bahsetmiş olduğunuz gibide kurulum yaptım fakat yazmış olduğunuz 2014d.lib dosyaları yerine ” opencv_ts300″ gibi dosyalar mevcut. Ne yapmalıyım sizin bahsetmiş olduğunuz lib dosyalarını nereden bulabilirim.

    1. Merhaba, ben 3.0 sürümü ve üstünün nasıl kurulduğunu bilmiyorum. Kurulumda önerdiğim sürümü kurarsanız problem çözülecektir. Ancak 3.0 sürümünü de benim kurduğum yöntemle kurduğunu söyleyenler var. Nasıl yaptıklarını bilmiyorum.

      1. Bende Opencv 3.0 kurmak için epey uğraştım. Şu anda problemi çözdüm.Talha beyin analttğı kurulumda farklı olarak
        Input-Additional Dependencies kısmına opencv_ts300d.lib
        opencv_world300d.lib dosyalarını ekledim. Ve kodun başına da
        #include “opencv2\core.hpp”
        #include “opencv2\imgproc.hpp”
        #include “opencv2\highgui.hpp”
        satırlarını ekledim.

        1. teşekkür ederim Gözde hanım, müsadeniz olursa güncellemenizi yazıda isminiz ile paylaşabilirim.

    1. Merhabalar, Ben internetten öğrenebileceğinizi düşünüyorum, bunu kullanarak opencv geliştirecekseniz yeterli olucaktır. Yanlız bunun üzerine kendinizi geliştirecekseniz ven kitap üzerinden çalışmadığım için sizi yönlendiremiyorum.

  5. selamunlaleykum bir proje yapıcamda video ile gerçek zamanlı bilgi alıcam ama sanal bir ekran gibi videoda bellı yerleri bölmek istiyorum sonra o bellı yerlere dokununca bilgi almak istiyom yada işletmek istiyom nasıl yapabılırm

  6. Merhaba,

    Gerçek zamanlı olarak görüntüden belirli şeyleri almak istiyorum. Yani insan var diyelim görüntüde onun yüzündeki mimik ifadelerini belirlemek gibi.

    Opencv mi openframeworks mü daha çok işime yarar?
    Ayrıca opencv için hangi konuları araştırmam lazım yada şöyle diyeyim görüntü işlemede hangi konulara giriyor bu dediğim.

  7. Merhaba,

    Openframeworks her ne kadar opencv yi kapsadığı söylense de bir resmin tahlil edilip incelenmesinde kaynaklara ulaşım ve kullanım bakımından opencv daha iyi bir tercih olacaktır.

  8. Başlangıçta görüntü işleme temellerini öğrenip temel opencv derslerini öğrenerek başlayabilirsiniz. Muhtemelen yapay sinir ağlarına ihtiyacınız olacaktır.

  9. MERHABA talha bey,
    opencv ye yeni başladım. opencv kütüphanesi kullanarak hareketli bir nesnenin hızını ölçmem lazım ödevim için. Başlangıç için ne önerebilirsiniz özellikle hangi konulara bakmam lazım yardımcı olursanız sevinirim

    1. Merhaba, nasıl bir nesne olacak bu? Renk aralığı falan belli mi? yoksa şekli belirli bir şey mi?

  10. Merhabalar.. Ben droneların kameralarının kuşlarla drone ları ayırt edebilecek bir proje yapmak istiyorum ama nasıl yapılacağını bilmiyorum opencv ye de hakim değilim nasıl yapılacağı konusunda yardımcı olabilirseniz çok mutlu olurum..

  11. Halcon ile opencv arasındında hız olarak kıyaslama yapılmak istenirse hızlı olAN kütüphane hangisidir.

  12. Merhaba Talha Bey
    Sitenizin çok güzel ve öğretici olduğunu söylemeliyim, geç farkettim ve baya hayıflandım.Genelde endüstriyel elektronik kart tasarımları ve yazılımlarıyla uğraşıyorum.Şu aralar biraz vakit bulup daha önce almış olduğum raspberry ve kamerasıyla bir şeyler yapmaya çalışıyorum.Zamanla bunu belli bir seviyeye getirme niyetindeyim.Sizde bilirsiniz ki duvara başlayacağım yerin önemli olduğunu düşünüyorum ki sonradan alttan tuğla çekmek zorunda kalıp yıkılmasına ve baştan tekrar tekrar temelden uğraşmama sebep olmasını istemiyorum.Şöyle ki internetten araştırdığım kadarıyla python anlatım ve yönlendirmeleri bi hayli fazla.Amacım en hızlı proses odaklı platform kullanmak.Haliyle aklıma C veya C++ daha mantıklı gelmişti.Ama velakin gcc derlemelerimde denediğim OPENCV 3.3 sample uygulamalarının FPS hızlarının python tabanlı aynı konulu samplelardan daha yavaş çalıştığını gözlemledim.Bunu hem görüntülerden hemde işlem clock zamanı değerleriyle gördüm.Örneğin Facedetect konusunda Python örneğinde prosesler 90-100ms sürerken C++ da 250-300ms sürmesi gibi.Çeşitli savlar okudum “OPENCV,raspberry pi pythona uygun,yatkın şöyle böyle” gibi ama mikroişlemci ve makine dili bilgim c nin işlemciye daha yakın olması gerektiğini düşünen mantığımın hala “nasıl olur bu?” sorusunu sormama engel olamıyor.Tecrübeniz varsa ikisi için de görüşlerinizi merak etmiştim. Gönlüm ve mantığım C ci olduğu için kaçırdığım bir şey mi var diye de gidip tekrar tekrar komponent,kamera kütüpheneleri, aracı nesneleri inceleyip kodları,interneti gözden geçirip duruyorum; yavaşlatacak bir şey olabilir mi diye.Ayrıca gideceğim yol ortaya çıktıktan sonra bu doğrultuda kesinlikle HIZ açısından tavsiye edeceğiniz bu tabanda kullanılacak OPTİMUM kamera(raspicam-MAM vb),komponent(matris-fonksiyon vb),kütüphane bileşimi nedir acaba?Şimdiden çok teşekkür ederim…

    1. Merhaba Celalettin, şöyle ki dediğin gibi c makine diline daha yakın. Ancak donanımda koşarken şöyle bir durum söz konusu olabilir. c ve c++ ta kütüphane tanımlayarak kütüphanedeki verileri çekersiniz. Çektiğiniz veriler rami doldurursa bu işlemi yorar ve yavaşlatabilir. Donanımda programı hızlı çalıştırmak biraz tecrübeye bağlıdır. Bu arada c makine diline daha yakın olduğu için bir de c deneyin derim. Ben de genelde c c++ kullandım. python denemedim ancak opencv nin son sürümlerini daha çok pyhton için geliştirdiler. Dolayısı ile ikisinde koşan fonksiyonlar aynı olsa da arka tarafta geliştirilen algoritmalar farklı olabilir. Yani python için optimize edilmiş olabilir o işlem. Programcı olarak şu ya da bu dili kullanayım diye bir duruma girmemek lazım. Her birini dener, karşılaştırırsınız. Hangisi hızlı ve size uygunsa onu seçmek en mantıklı çözüm olacaktır. Sonuçta ufak tefek syntax farklılıkları olsa da her biri aynı komutlar ile kodlanmaktadır.
      Kolay gelsin, iyi çalışmalar.

  13. hocam opencv c++ ile hareket eden nesnelerin konumlarını bularak dikdörtgen içine almam gerekiyor ve bu hareket eden nesneler birbirine yaklaşınca uyarı verdirmem gerekiyor
    ama işin içinden çıkamadım yardımcı olabilirmisiniz.

    1. Merhabalar,

      Background subsraction araştırın. Bu işinizi çözecektir. Opencv c++ da mevcuttur.

  14. Merhaba hocam bizim arkadaşlarla bir projemiz var.Akıllı çöp kutusu yapacaz.Yapacağımız çöp kutusu bölmeli olacak ve atacağımız maddenin cinsine göre o maddenin bulunduğu bölmenin kapağı açılacak ve biz çöpü o bölmeye atacağız.Nasıl yapacağımız konusunda bir öneriniz var mı? Hangi program işimize daha çok yarar? Nasıl bir kamera almalıyız ? Yani kısacası Nasıl bir yol izlemeliyiz ?

    1. Burada demek istediğim daha açık bir şekilde şöyle anlatabilirim:Bir çöp kutusu tasarlayacağız ve çöpe yaklaştırdığımız cismin kâğıt mı, plastik mi cam mı ya da metal mi olduğunu sistem algılayacak ve o kutunun kapağı açılacak. Arkadaşlarla böyle bir projemiz var. Nasıl yapacağımız konusunda bilgi almak istiyorum. Bildiğimiz kadarıyla sistem görüntü işleme teknolojisi ile hangi cismi yaklaştırdığımızı algılayacak. Fakat ne şekilde yapmamız gerektiği konusunda bilgi sahibi değiliz. Yani hangi programlama dilini kullanmalıyız. Hangi kamerayı kullanmalıyız.Heralde Servomotor da kullanacağız. Ekstra olarak ne yapmalıyız. Yani kısacası nasıl bir yol izlemeliyiz. Bununla ilgili bilgi almak istiyorum. Yardımcı olur musunuz?

  15. Bir çöp kutusu tasarlayacağız ve çöpe yaklaştırdığımız cismin kâğıt mı, plastik mi cam mı ya da metal mi olduğunu sistem algılayacak ve o kutunun kapağı açılacak. Arkadaşlarla böyle bir projemiz var. Nasıl yapacağımız konusunda bilgi almak istiyorum. Bildiğimiz kadarıyla sistem görüntü işleme teknolojisi ile hangi cismi yaklaştırdığımızı algılayacak. Fakat ne şekilde yapmamız gerektiği konusunda bilgi sahibi değiliz. Yani hangi programlama dilini kullanmalıyız. Hangi kamerayı kullanmalıyız. Ekstra olarak ne yapmalıyız. Yani kısacası nasıl bir yol izlemeliyiz. Bununla ilgili bilgi almak istiyorum. Yardımcı olur musunuz?

  16. Talha Bey merhaba;
    Ben mekatronik mühendisliği okuyorum alanım gereği yapay zeka için Opencv ilgimi çeiyor ve 0 dan başlamak istiyorum.Bunun için önereceğiniz bir yol,kaynak filan varmıdır ?

  17. Merhabalar. Otomatik yüz takip sistemi ile alakalı bir dönem ödevim var sizcedoğru yerde miyim ? opencv bunun için gerekli algoritmalardahilinde yardımcı olur mu bana? teşekkürler ..

  18. Merhabalar talha bey. Ben sürücünün yorgunluğunu tespit eden bir sistem geliştirmek istiyorum. Bunu python ve opencv ile yapmam gerekiyor. Öncelikle sürücünün yüzünü ve gözünü tespit etmem gerekiyo. Gözün uzun süre kapalı kalması durumunda veya başın öne düşmesi durumunda uyarı veren bir sistem geliştirmek istiyorum ama ne yapmam gerektiğini bilmiyorum. Bu konuda bi bilginiz varsa yardımcı olabilme durumunuz varmı

Ali için bir cevap yazın Cevabı iptal et

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

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

Arama

Twitterda

© 2014 - Talha Koç. All Rights Reserved. Powered by Wordpress and Design by We Create Web Designs