python opencv kütüphanesi
python opencv kütüphanesi

PYTHON OPENCV KÜTÜPHANESİ
OpenCV: bilgisayarla görü, makine öğrenimi, görüntü işleme, video analizi gibi uygulamalar için kullanılan devasa bir açık kaynak kodlu kütüphanedir. Gerçek zamanlı işlemlerde oldukça önemli bir rol oynamaktadır. OpenCV kütüphanesi sayesinde web kameraları, video dosyaları veya diğer aygıt türleri tarafından bir bilgisayara bağlanan görsel bilgilerin yakalanmasını, analiz edilmesini ve değiştirilmesini destekleyen yüzlerce işlev içerir. Bir ekrana bir çizgi veya başka bir şekil çizmek için basit işlevler kullanılabilirken, kitaplığın daha gelişmiş kısımları yüzleri algılamak, hareketi izlemek ve şekilleri analiz etmek için algoritmalar içerir. Bu kitaplığın algoritmalarının çoğu, ürün incelemesi, tıbbi görüntüleme, robotik, yüz ve hareket tanıma ve insan-bilgisayar etkileşimi (HCI) dahil olmak üzere bilgisayarla görmenin belirli kullanımlarıyla ilgilidir. OpenCV, hem ticari hem de hobi projelerinde oldukça az kısıtlama ile kullanılabilir.
OpenCV kütüphanesi sayesinde bir geliştirici, bilgisayarla görü işlevini güvenilir bir şekilde oluşturmaya yönelik karmaşık ve sıkıcı işlerin bir kısmını ortadan kaldırabilir ve uygulamayı oluşturmaya odaklanabilir. Bir programcı, yüz tanıma ve benzeri için algoritmalar oluşturmak yerine, bir programın uygun kitaplık işlevine erişmesini sağlamak için yalnızca birkaç satır kod ekleyebilir. Aynı zamanda, bir programcının onu kullanan bir program oluşturmak için bilgisayar vizyonunun her yönüne hakim olması gerekmediği anlamına gelir.
OpenCV ile C++, C, Python, Java ve MATLAB arayüzlerine sahiptir ve bu arayüzler için API, çevrimiçi belgelerde bulunabilir. OpenCV ayrıca Windows, Linux, Mac OS, iOS ve Android’i de destekler. Başlangıçta, OpenCV oluşturmanın temel amacı, hesaplama verimliliği için gerçek zamanlı uygulamalardı. 2011’den beri OpenCV, gerçek zamanlı işlemler için GPU hızlandırma da sunuyor. NumPy gibi diğer kütüphanelerle entegrasyon üzerine, Python, analiz için OpenCV dizi yapısını işleyebilir.
OpenCV Kullanım Alanları
- Yüzleri algılama ve tanıma
- Nesneleri tanımlama
- Videolarda insan eylemlerini sınıflandırma
- Kamera hareketlerini takip etme
- Hareket eden nesneleri takip etme
- Nesnelerin 3B modellerini çıkarma
- Bir resim veritabanından benzer resimler bulma
- Göz hareketlerini takip etme
- Manzarayı tanıma
- Mimik tanıma
OpenCV ile Neler Yapabilirsiniz?
Optik Akış Algoritmaları
Optik akış algoritmaları ardışık kareler boyunca özellikleri izlemek için videolarda kullanılır. Bir videodaki belirli bir nesneyi izlemek istediğinizi varsayalım. Her karede bir özellik çıkarıcı çalıştırmak, hesaplama açısından pahalı olacaktır; bu nedenle, süreç yavaş olacaktır. Bu nedenle, mevcut çerçeveden özellikleri çıkarmanız ve ardından bu özellikleri ardışık çerçevelerde izlemeniz yeterlidir. Optik akış algoritmaları, Computer Vision’daki video tabanlı uygulamalarda yoğun olarak kullanılmaktadır. optflow modülü optik akışı gerçekleştirmek için gereken bir dizi algoritma içerir. Ayrıca tracking modülü özellikleri izlemek için kullanılabilecek daha fazla algoritma içerir.
Şekil analizi
bilgisiyarla görmede şekil kavramı çok önemlidir. Görüntüdeki çeşitli farklı şekilleri tanıyarak görsel verileri analiz edebiliriz. Bu aslında birçok algoritmada önemli bir adımdır. Bir resimde belirli bir logoyu tanımlamaya çalıştığınızı varsayalım. Artık çeşitli şekillerde, yönlerde, boyutlarda ve benzerlerinde görünebileceğini biliyorsunuz. Analize başlamanın iyi bir yolu, nesnenin şeklinin özelliklerini ölçmektir. Modül shape, farklı şekilleri çıkarmak, aralarındaki benzerlikleri ölçmek, nesnelerin şekillerini dönüştürmek vb. için gereken tüm algoritmaları sağlar.
Yüzey eşleştirme
Çevremizdeki nesnelerin 3B yapısını yakalayabilen cihazlarla giderek daha fazla etkileşime giriyoruz. Bu cihazlar temel olarak normal 2D renkli görüntülerle birlikte derinlik bilgilerini de yakalar. Bu nedenle, 3B nesneleri anlayabilen ve işleyebilen algoritmalar oluşturmamız bizim için önemlidir. Kinect, görsel verilerle birlikte derinlik bilgilerini de yakalayan bir cihaza güzel bir örnektir. Görevi, girdi 3B nesnesini veri tabanımızdaki modellerden biriyle eşleştirerek tanımaktır. Bir nesneyi tanıyabilen ve konumlandırabilen sistem, daha sonra birçok farklı uygulama için kullanılabilir. surface_matching adlı modül 3B nesne tanıma algoritmaları ve 3B özellikleri kullanan bir poz tahmin algoritması içerir.
OpenCv kütüphanesi ile neler yapılabilir
OpenCv kütüphanesi ile görüntüler üzerinde; dönüşümler, tonlamalar, renk odakları, arka plan ayrıştırma, yüz tanıma, nesne tanıma, yaya tanıma, araç sayma, araç tanıma gibi uygulamalar yaparak görüntülerin nasıl analiz edilebileceğini öğrenebilirsin.
OpenCv kütüphanesi örnek kod:
# Python code to read image import cv2 # To read image from disk, we use # cv2.imread function, in below method, img = cv2.imread("geeksforgeeks.png", cv2.IMREAD_COLOR) # Creating GUI window to display an image on screen # first Parameter is windows title (should be in string format) # Second Parameter is image array cv2.imshow("image", img) # To hold the window on screen, we use cv2.waitKey method # Once it detected the close input, it will release the control # To the next line # First Parameter is for holding screen for specified milliseconds # It should be positive integer. If 0 pass an parameter, then it will # hold the screen until user close it. cv2.waitKey(0) # It is for removing/deleting created GUI window from screen # and memory cv2.destroyAllWindows()