OpenCV에서 Python을 사용하고 있으며 웹캠을 통해 얼굴을 감지 할 수도 있습니다. 내가 정말로하고 싶은 것은 움직임을보고 움직임의 한가운데서 그 지점을 발견합니다. 캠 샤프트 샘플은 내가 원하는 것과 가깝지만 추적 할 비디오 부분을 선택하지 않아도됩니다. 다음 프레임을 예측할 수있는 보너스 포인트.OpenCV 및 Python을 사용하여 BLOB를 추적하는 방법
#!/usr/bin/env python
import cv
def is_rect_nonzero(r):
(_,_,w,h) = r
return (w > 0) and (h > 0)
class CamShiftDemo:
def __init__(self):
self.capture = cv.CaptureFromCAM(0)
cv.NamedWindow("CamShiftDemo", 1)
self.storage = cv.CreateMemStorage(0)
self.cascade = cv.Load("/usr/local/share/opencv/haarcascades/haarcascade_mcs_upperbody.xml")
self.last_rect = ((0, 0), (0, 0))
def run(self):
hist = cv.CreateHist([180], cv.CV_HIST_ARRAY, [(0,180)], 1)
backproject_mode = False
i = 0
while True:
i = (i + 1) % 12
frame = cv.QueryFrame(self.capture)
if i == 0:
found = cv.HaarDetectObjects(frame, self.cascade, self.storage, 1.2, 2, 0, (20, 20))
for p in found:
# print p
self.last_rect = (p[0][0], p[0][1]), (p[0][2], p[0][3])
print self.last_rect
cv.Rectangle(frame, self.last_rect[0], self.last_rect[1], cv.CV_RGB(255,0,0), 3, cv.CV_AA, 0)
cv.ShowImage("CamShiftDemo", frame)
c = cv.WaitKey(7) % 0x100
if c == 27:
break
if __name__=="__main__":
demo = CamShiftDemo()
demo.run()
단지의 점액 흔적 다음에서 해결책을 찾을 수 없습니다 : 심지어 C++ 예제가 도움이 될 것입니다 D – rownage
을, 워드 프로세서는 따라하기가 매우 어려운 여기
내가 현재 가지고있는 코드입니다 . –더보기 simpleerized : http://stackoverflow.com/questions/3374828/how-do-i-track-motion-using-opencv-in-python –