Takip et

Gerçek Zamanlı Parmak Sayma: MediaPipe ve OpenCV ile

Gerçek Zamanlı Parmak Sayma: MediaPipe ve OpenCV ile

Bu makalede, MediaPipe ve OpenCV kütüphanelerini kullanarak gerçek zamanlı parmak sayma uygulamasının nasıl geliştirileceğini adım adım açıklayacağız. Öncelikle, bu iki güçlü kütüphanenin ne işe yaradığını kısaca özetleyelim. MediaPipe, Google tarafından geliştirilen ve çeşitli bilgisayar görüşü görevleri için önceden eğitilmiş modeller sunan bir çerçevedir. OpenCV ise, görüntü işleme ve bilgisayar görüşü alanında yaygın olarak kullanılan kapsamlı bir kütüphanedir. Bu iki kütüphanenin birleşimiyle, etkin ve doğru bir parmak sayma sistemi oluşturabiliriz.

Uygulamanın temel mantığı: Sistem, öncelikle web kamerası veya video dosyasından alınan görüntülerde elleri tespit eder. Daha sonra, MediaPipe’in el izleme modeli, her parmağın pozisyonunu belirler. Son olarak, OpenCV ile bu pozisyon bilgilerini kullanarak parmak sayısını hesaplar ve ekranda görüntüler.

Gerekli Kütüphanelerin Kurulumu

Başlamadan önce, gerekli kütüphaneleri kurmanız gerekiyor. Bunu pip kullanarak yapabilirsiniz:


pip install mediapipe opencv-python

Kod Uygulaması

Aşağıda, Python dilinde yazılmış örnek bir kod bulunmaktadır. Bu kod, web kameranızdan görüntüler alır, elleri tespit eder ve parmak sayısını sayar:


import cv2
import mediapipe as mp

mp_drawing = mp.solutions.drawing_utils
mp_hands = mp.solutions.hands

cap = cv2.VideoCapture(0)

with mp_hands.Hands(static_image_mode=False, max_num_hands=2, min_detection_confidence=0.5) as hands:
    while cap.isOpened():
        ret, frame = cap.read()
        if not ret:
            break
        frame = cv2.cvtColor(frame, cv2.COLOR_BGR2RGB)
        results = hands.process(frame)
        frame = cv2.cvtColor(frame, cv2.COLOR_RGB2BGR)

        if results.multi_hand_landmarks:
            for hand_landmarks in results.multi_hand_landmarks:
                mp_drawing.draw_landmarks(frame, hand_landmarks, mp_hands.HAND_CONNECTIONS)
                # Burada parmak sayısını hesaplama mantığı eklenebilir.  
                # Örneğin, belirli eklemlerin pozisyonlarını karşılaştırarak parmakların açık veya kapalı olup olmadığını tespit edebilirsiniz.

        cv2.imshow('Parmak Sayma', frame)
        if cv2.waitKey(10) & 0xFF == ord('q'):
            break

cap.release()
cv2.destroyAllWindows()

Bu kod, MediaPipe’in el tespit ve izleme özelliklerini kullanır. Ancak, parmak sayma kısmı yorum satırı içinde bırakılmıştır. Bu kısmı, parmak eklemlerinin koordinatlarını inceleyerek ve bir mantık uygulayarak kendiniz tamamlayabilirsiniz. Bu adım için, eklemlerin açılarını hesaplamak veya belirli eklemlerin pozisyonlarını karşılaştırarak parmakların açık veya kapalı olup olmadığını belirlemek gibi yöntemler kullanabilirsiniz. Daha detaylı bilgi için, MediaPipe ve OpenCV dokümanlarını inceleyebilirsiniz.

Sonuç

MediaPipe ve OpenCV kütüphanelerinin kullanımıyla, gerçek zamanlı ve nispeten doğru bir parmak sayma uygulaması geliştirmek mümkündür. Bu uygulama, oyunlar, insan-bilgisayar etkileşimi ve tıbbi uygulamalar gibi çeşitli alanlarda kullanılabilir. Bu makalede verilen temel kod örneği, sizlerin kendi ihtiyaçlarınıza göre özelleştirilerek geliştirilebilir.

Daha fazla bilgi ve proje örnekleri için fatihsoysal.com adresini ziyaret edebilirsiniz. Ayrıca, MediaPipe ve OpenCV dokümanlarına göz atmanızı şiddetle tavsiye ederim. Bu kütüphanelerin sunduğu diğer birçok özellik ve fonksiyon, gelecekteki projelerinizde size büyük kolaylık sağlayacaktır.

Başka sorularınız veya önerileriniz varsa lütfen yorumlarda belirtiniz.

MediaPipe Dokümanları

OpenCV Dokümanları

#Etiketler: MediaPipe, OpenCV, Parmak Sayma, Gerçek Zamanlı, El Takibi, Bilgisayar Görüşü, Python, Uygulama Geliştirme, Fatih Soysal


Yorumlar
İçeriği beğendiniz mi? Bir tartışma başlatın veya görüşlerinizi paylaşın.
Yorum Yaz

Bir yanıt yazın

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

E-posta Bülteni
Yazılım Topluluğuna Katılın
En son güncellemeleri, yaratıcı ipuçlarını ve özel kaynakları doğrudan e-posta kutunuza alın. Tasarım ve inovasyonun geleceğini birlikte keşfedelim.