Anasayfa Bloglar OpenCV Nedir? OpenCV ile Görüntü İşleme
Coderspace Pro Coderspace Pro

OpenCV Nedir? OpenCV ile Görüntü İşleme

7 Dakika Okuma Süresi · 02.06.2025
Blog Small Image

Bu içeriği yapay zeka ile özetle!

Son birkaç yılda, yapay zeka alanında önemli ilerlemeler kaydedildi. Ancak, bu gelişmelerin büyük bir kısmı derin öğrenme, bilgisayarla görme ve görüntü işleme alanlarında gerçekleşti. 

Bilgisayarlı görü, makinelerin görüntü ve videoların içeriğini anlamasını sağlayan bir süreçtir. Otonom araçlardan, fotoğraf düzenleme gibi uygulamalara kadar pek çok alan bu teknolojiden faydalanır.  Otomatik görüntü okuma, yüz ve şekil tanıma, metin tanıma gibi işlemlerde de kullanılır. 

Bugün, görüntü işleme ve bilgisayarlı görü alanında standart olarak kabul edilen bir araç var: OpenCV. 

OpenCV veya Open Source Computer Vision, gerçek zamanlı görüntü ve video işleme için araçlar sunan açık kaynaklı bir kütüphanedir.

OpenCV, derin öğrenme tekniklerini içeren 2500'den fazla algoritmaya sahiptir. Bu algoritmalar, nesne tespiti, görüntü segmentasyonu ve yüz tanıma gibi görevlerde kullanılır.

Bu yazımızda, OpenCV'nin ne olduğunu, yıllar içinde nasıl geliştiğini ve insanların onu nasıl heyecan verici şekillerde kullandığını inceleyeceğiz. Haydi başlayalım!

 

OpenCV Nedir? 

OpenCV, "Open Source Computer Vision Library"nin kısaltmasıdır ve bilgisayarlı görü uygulamaları için kullanılan, gerçek zamanlı görüntü ve video işleme araçları sunan açık kaynaklı kütüphanedir

Açık kaynak kodlu olduğu için herkes kullanabilir ve projelerine uyarlayabilir. Google gibi büyük şirketlerden küçük girişimlere ve akademik araştırmalara kadar her tür projeye uygundur.

Gelelim OpenCV’nin öne çıkan özelliklerine. ✍️OpenCV, nesneleri tanımaktan nesnelerin hareketini izlemeye ve hatta 3D modeller oluşturmaya kadar her şeyi sağlayan algoritmalarla doludur. 47.000'den fazla kullanıcıya sahip geniş bir topluluğa ve 18 milyondan fazla indirmeye sahiptir.

OpenCV, C++, Python, Java ve MATLAB dillerini destekler. Windows, Linux, Android ve MacOS'ta çalışır. Gerçek zamanlı çalışılması gereken projeler için özellikle uygundur.

İşte OpenCV ile C++ kullanarak yüz tespiti için basit bir demo kodu:

OpenCV’nin Mimarisi

OpenCV'nin mimarisi, geniş bir yelpazede bilgisayarlı görü ve makine öğrenimi uygulamalarını desteklemek üzere tasarlanmıştır. Yapının temelinde CXCore adı verilen bir çekirdek bileşen bulunur. Bu çekirdek, ana fonksiyonlar ve algoritmaları barındırır, bu sayede tekrarlamalar azaltılır ve verimlilik artırılır.

OpenCV’nin çekirdeğine ek olarak, görüntü işleme ve görme algoritmalarına odaklanan CV bileşeni ve istatistiksel sınıflandırma ile kümeleme araçlarını içeren MLL bileşeni de vardır. Ayrıca, HighGUI adındaki bir diğer bileşen ise grafik kullanıcı arayüzü işlevleri ve görüntü/video giriş-çıkış işlemleri için tasarlanmıştır. Bu modüler yapı, makine öğrenimi özelliklerinin esnek bir şekilde entegrasyonuna olanak tanır.

OpenCV’nin Algoritmaları

OpenCV kütüphanesi, optimize edilmiş 2500'den fazla algoritma sunar. Bu algoritmalar, görüntü sınıflandırma, nesne tespiti, görüntü segmentasyonu, özellik çıkarımı ve hatta el yazısı tanıma gibi çeşitli görevlerde kullanılabilir. OpenCV’nin algoritmaları ile yapılabilecekler sınırsızdır diyebiliriz.

Bu algoritmalardan bazılarını yakından inceleyelim. 👉 Support Vector Machines (SVM) ve K-Nearest Neighbors (KNN) algoritmaları, benzer veri noktalarını gruplayarak görüntü sınıflandırma işlemlerinde kullanılır. Bu algoritmalar, hayvanlar veya nesneler gibi kategoriler arasında ayrım yapmak için uygundur.

Karar ağaçları, nesne tespiti ve görüntü segmentasyonu gibi görevlerde performansı artırmak için genellikle derin öğrenme gibi diğer makine öğrenimi teknikleriyle birlikte kullanılır.

OpenCV’nin derin öğrenme kısmı, TensorFlow ve PyTorch gibi framework'leri destekleyen sinir ağları içerir. Ayrıca, OpenCV sürekli gelişmekte olup, nesne tespiti için YOLO (You Only Look Once) ve görüntü sınıflandırma ve tespit gibi görevlerde Transformer mimarisini kullanan Vision Transformers (ViTs) gibi yeni modelleri de entegre etmektedir.

 

OpenCV Ne için Kullanılır?

OpenCV, bilgisayarlı görü ve görüntü işleme alanında çok çeşitli uygulamalar geliştirmek amacıyla geliştirdi. Bu nedenle, OpenCV, yapay zeka ile görme teknolojisinin gerçek zamanlı uygulamalarına odaklanır.

OpenCV’nin amacı, kullanıcıların hızlıca gelişmiş görme uygulamaları oluşturmasına yardımcı olacak basit bir bilgisayarlı görü altyapısı sağlamaktır. Bu doğrultuda OpenCV, 500’den fazla fonksiyon sunar. Bu fonksiyonlar arasında fabrika ürün denetimi, tıbbi görüntüleme, güvenlik analizi, insan-makine arayüzü, kamera kalibrasyonu, stereo görme (3D görme) ve robotik görme gibi işlevler bulunur.

Kapsamlı görüntü işleme özellikleri, video akışı işleme, görüntü birleştirme (birden fazla kameranın görüntülerini birleştirme) ve çeşitli görüntü ön işleme görevlerini de destekler. 

Büyük işletmeler ve devlet kurumları OpenCV kullananlar arasında yer alır. Google, Toyota, IBM, Microsoft, SONY, Siemens ve Facebook gibi şirketlerin OpenCV kullandığını söylemeden geçmek olmaz. 

 

OpenCV Kullanım Alanları

OpenCV'nin kullanılabileceği bazı alanları aşağıda listeledik. 👇

2D ve 3D Özellik Araç Setleri 

OpenCV, hem 2D hem de 3D özelliklerin analizini sağlayan güçlü araç setleri sunar. Bu özellik, görüntü eşleştirme, nesne takibi ve artırılmış gerçeklik uygulamaları gibi görevler için kullanılabilir.

Örneğin, OpenCV, panoramik görüntüler oluşturmak veya birden fazla görüntüden 3D modeller üretmek için anahtar özellikleri tespit edip eşleştirebilir. Hatta, bir sahneyi yeniden oluşturmak için bile kullanılabilir. 

Yukarıdaki örnekte, orijinal görüntüde bina ön plandaki nesnelerin arkasında gizlidir. Çıktı görüntüsünde ise sahne yeniden oluşturularak bina artık gizli değildir.

Hareket Tanıma ve İnsan-Bilgisayar Etkileşimi 

OpenCV, hareket tanıma sistemlerinin geliştirilmesini kolaylaştırmaya yardımcı olur. Hareket tanıma, kullanıcıların bilgisayarlarla veya cihazlarla jestler ve hareketler yoluyla etkileşim kurmasına olanak tanır.

Yukarıdaki örnekte göründüğü gibi OpenCV yardımıyla web kamerası el hareketlerini izleyebilir ve kullanıcıların menüler arasında gezinmesini sağlayabilir. Ekran üzerindeki tüm bu eylemleri, fiziksel kontrol cihazları olmadan gerçekleştirmeyi sağlar.

Hareket Anlamlandırma ve Nesne Tespiti 

OpenCV'deki hareket algılama, bir sahnedeki nesnelerin konumlarındaki değişiklikleri zaman içinde belirleme sürecini ifade eder. Hareket algılama algoritması, video karelerini analiz eder ve nesnelerin hareketini belirlemek için piksel yoğunluğundaki değişiklikleri algılar. Hareket algılama algoritması, nesne hareketi, kamera hareketi ve arka plan hareketi dahil olmak üzere çeşitli hareket türlerini algılamak için kullanılabilir .

Örneğin, aşağıdaki güvenlik kamerası görüntülerini izleyen bir hareket algılama sistemi OpenCV kullanılarak geliştirilmiştir. Bu tür bir sistem, şüpheli hareketler algıladığında kullanıcıları gerçek zamanlı olarak uyarabilir.

Artırılmış Gerçeklik

Eskiden dünyayı sadece beş duyumuzla görüyorduk: Görme, işitme, koku alma, tat alma ve dokunma. Bu durum artık değişiyor.

Akıllı telefonlar dünyayı hem gerçek anlamda hem de mecazi anlamda, görme, duyma ve dokunma gibi duyuları dönüştürüyor. Kim bilir belki bir gün artırılmış gerçeklik koku ve tadı da geliştirebilecek…🤷‍♀️

Artırılmış gerçeklik, adından da anlaşılacağı üzere, etrafımızdaki gerçek dünyayı bilgisayar tarafından oluşturulan algısal bilgilerle zenginleştirir. OpenCV ise bu noktada, artırılmış gerçeklik uygulamalarında dijital içeriğin gerçek dünyaya gerçek zamanlı olarak eklenmesini sağlar. Bu teknoloji, oyun, eğitim ve pazarlama gibi alanlarda kullanılır.

Yüz Tanıma

Otomatik yüz tanıma, bir insan yüzünü tanımlar ve onu bir yüz özelliği veri tabanında eşleştirir. OpenCV'nin FaceRecognizer'ı, gerçek uygulamalarda kullanılmak üzere bir dizi popüler yüz tanıma algoritması sağlar.

 

OpenCV ile yüz tanıma

Python’da OpenCV Nasıl Kurulur?

1. Python'ın Yüklü Olduğundan Emin Ol

Öncelikle, bilgisayarında Python’ın yüklü olduğundan emin olmalısın. Yüklü değilse Python'ın resmi web sitesinden Python’ı indirip yükleyebilirsin.

2. pip ile OpenCV'yi Yükle

OpenCV'yi yüklemek için Python’ın paket yöneticisi pip kullanılır. Terminale veya komut satırına aşağıdaki komutu girerek OpenCV’yi yükleyebilirsin:

Bu komut, OpenCV'nin temel kütüphanesini yükler. Eğer video işleme ve gelişmiş özellikler için ek modüllere ihtiyaç duyuyorsan, aşağıdaki ek komutu kullanarak bunları da yükleyebilirsin:

3. Kurulumu Doğrula

OpenCV’nin başarılı bir şekilde kurulduğunu ve hangi sürümün yüklü olduğunu görmek için şu satırları çalıştırabilirsin:

4. Gerekli Ek Paketler

OpenCV ile görüntü ve video işlemek için ek kütüphaneler yüklemen gerekebilir. Özellikle video işleme yaparken ffmpeg veya gstreamer gibi bağımlılıklara ihtiyaç duyulabilir.

Sonrasında her şey tamam. Artık OpenCV'yi Python ile kullanmaya başlayabilirsin!

 

OpenCV ile Görüntü İşleme

OpenCV ve bilgisayarlı görünün geleceği oldukça heyecan verici görünüyor. Sürekli gelişen bu teknoloji, birçok sektörde dönüşüm yaratmaya hazırlanıyor. Edge computing (uç bilişim) ve Nesnelerin İnterneti (IoT) teknolojilerinin yükselişiyle, hafif ve verimli bilgisayarlı görü çözümlerine olan talebin de artacağı düşünülüyor.

OpenCV’nin gelişimine baktığımızda 1999’dan bu yana büyük bir yol kat etti. Temel görüntü işleme işlemlerinden, artırılmış gerçeklikte hareket kontrolüne kadar geniş bir araç setine sahip. Sürekli yenilenmesi, OpenCV'yi developer’lar ve araştırmacılar için güçlü bir araç haline getiriyor.

İster video akışlarına yüz tanıma özelliğini nasıl uygulayacağını öğrenmek, ister görüntü sınıflandırması için derin öğrenme projesi oluşturmak, istersen de sadece hobi için projene görüntü tanıma özelliğini eklemek olsun, bir noktada OpenCV'yi öğrenmen gerekebilir.

Gerçek şu ki, OpenCV öğrenmek eskiden oldukça zordu. Dokümantasyonda gezinmek zordu ve hatta eğitimleri eksikti. Ancak artık OpenCV öğrenmek eskiden olduğu kadar zor değil. Hatta, OpenCV’de çalışmanın önemli ölçüde kolaylaştığını söyleyebiliriz. 

OpenCV nasıl kullanılır öğrenmek ve görüntü işleme becerilerinizi geliştirmek için açık olan ücretsiz bootcamp’lerimize göz atabilirsin. 

Bu içeriği yapay zeka ile özetle!

İÇERİKLER
Konu içeriği

Python ile Programlamaya Giriş 🧑‍💻 Veri bilimi, yazılım ve analitik dünyasının temel dili Python’u sıfırdan öğren. Veri dünyasına ilk adımını at! Hemen İncele!
Python ile Programlamaya Giriş 🧑‍💻 Veri bilimi, yazılım ve analitik dünyasının temel dili Python’u sıfırdan öğren. Veri dünyasına ilk adımını at! Hemen İncele!

Önerilen İçerikler

Tüm İçerikler

Açık Etkinlikler

Tüm Etkinlikler
Aktek Bilişim Genç YetenekliO Programı
Aktek Bilişim Genç YetenekliO Programı

🚀 Aktek Bilişim, Genç YetenekliO Programı ile genç yetenekleri bekliyor!

Yetenek Programı
  • Son Başvuru 31 Mayıs
Detaylı Bilgi
Togg Beyonder
Togg Beyonder

We Only Achieve Togg’ether

Yetenek Programı
  • Son Başvuru 31 Mayıs
Detaylı Bilgi
Teknoloji Zirvesi
Teknoloji Zirvesi

Türkiye’nin önde gelen şirketleri; yazılım, veri, güvenlik ve inovasyon odağında öğrenci ve yeni mezunlarla buluşuyor.

Meet-up
  • Son Başvuru 10 Haziran
  • Başlangıç 10 Haziran
  • Bitiş 10 Haziran
Detaylı Bilgi
Tüm Etkinlikler

Codecast: Yazılımcı Sohbetleri

Farklı alanlardan konuklarımızın katılımlarıyla gerçekleşen Codecast’te yazılım ve veri bilimi yöneticilerini Podcast serimizde konuk ediyoruz!