Python OpenCV ile İnsan Vücudu Takibi

BeecoV

Kilopat
Katılım
18 Mayıs 2015
Mesajlar
186
Çözümler
2
Merhabalar,

Python OpenCV ile insan vücudu takip edecek bir program yazmak istiyorum. Bu programı az çok yazdım. Haar Cascade yöntemi ile insan vücudunun üst kısmını algılatmayı başardım. Buradaki sorunum şu, insan vücudunun üst kısmını algılamadığı zaman program "algılamadı" yazmalı, algıladığı zaman ve dikdörtgen içine aldığı zaman da "algıladı" yazmalı. If else kısmında bir sorun yaşadım. Yardımcı olursanız sevinirim. Kodlarım aşağıdaki gibidir:

Python:
import os
import cv2
import time


ustvucud = cv2.CascadeClassifier('haarcascade_upperbody.xml')
kamera = cv2.VideoCapture(0)

while True:
    r, frame = kamera.read()
    if r:
        baslangic = time.time();
        frame = cv2.resize(frame, (500,500))


        gray_frame = cv2.cvtColor(frame, cv2.COLOR_RGB2GRAY)
        rects = ustvucud.detectMultiScale(gray_frame)

        bitis = time.time()
        print("Geçen zaman: ", bitis - baslangic)


        for (x, y, w, h) in rects:
            cv2.rectangle(frame, (x,y), (x + w, y + h), (255, 192, 203), 3)


        cv2.imshow("Gösterim", frame)

    k = cv2.waitKey(1)
    if k & 0xFF == ord("q"):
        break
 
Merhabalar,

Python OpenCV ile insan vücudu takip edecek bir program yazmak istiyorum. Bu programı az çok yazdım. Haar Cascade yöntemi ile insan vücudunun üst kısmını algılatmayı başardım. Buradaki sorunum şu, insan vücudunun üst kısmını algılamadığı zaman program "algılamadı" yazmalı, algıladığı zaman ve dikdörtgen içine aldığı zaman da "algıladı" yazmalı. If else kısmında bir sorun yaşadım. Yardımcı olursanız sevinirim. Kodlarım aşağıdaki gibidir:

Python:
import os
import cv2
import time


ustvucud = cv2.CascadeClassifier('haarcascade_upperbody.xml')
kamera = cv2.VideoCapture(0)

while True:
    r, frame = kamera.read()
    if r:
        baslangic = time.time();
        frame = cv2.resize(frame, (500,500))


        gray_frame = cv2.cvtColor(frame, cv2.COLOR_RGB2GRAY)
        rects = ustvucud.detectMultiScale(gray_frame)

        bitis = time.time()
        print("Geçen zaman: ", bitis - baslangic)


        for (x, y, w, h) in rects:
            cv2.rectangle(frame, (x,y), (x + w, y + h), (255, 192, 203), 3)


        cv2.imshow("Gösterim", frame)

    k = cv2.waitKey(1)
    if k & 0xFF == ord("q"):
        break
Hocam bende aynı şekilde bir proje yapmak istiyorumda kodunuzu kopyaladığımda maalesef çalışmadı. Nerede hata yapıyorum? Opencv ve numpy yüklü sistemimde başka kütüphane de mi yüklemem lazım?
 
Merhaba,

Python OpenCV ile insan vücudu takip edecek bir program yazmak istiyorum. Bu programı az çok yazdım. Haar cascade yöntemi ile insan vücudunun üst kısmını algılatmayı başardım. Buradaki sorunum şu, insan vücudunun üst kısmını algılamadığı zaman program "algılamadı" yazmalı, algıladığı zaman ve dikdörtgen içine aldığı zaman da "algıladı" yazmalı. If else kısmında bir sorun yaşadım. Yardımcı olursanız sevinirim. Kodlarım aşağıdaki gibidir:

Python:
import os.
import cv2.
import time.

ustvucud = cv2.CascadeClassifier('haarcascade_upperbody.xml')
kamera = cv2.VideoCapture(0)

while True:
 r, frame = kamera.read()
 if r:
 baslangic = time.time();
 frame = cv2.resize(frame, (500,500))

 gray_frame = cv2.cvtColor(frame, cv2.COLOR_RGB2GRAY)
 rects = ustvucud.detectMultiScale(gray_frame)

 bitis = time.time()
 print("Geçen zaman: ", bitis - baslangic)

 for (x, y, w, h) in rects:
 cv2.rectangle(frame, (x,y), (x + w, y + h), (255, 192, 203), 3)

 cv2.imshow("Gösterim", frame)

 k = cv2.waitKey(1)
 if k & 0xFF == ord("q"):
 break

Benzer bir projeyi Mediapipe kullanarak yapmıştım orada noktaların görünürlük değerini de veriyordu onu kullanabilirsiniz ya da haar'da belki benzer bir şey vardır.
 

Yeni konular

Geri
Yukarı