2017-02-24 26 views
0

我使用python和opencv2將網絡攝像頭流上的實時面部識別系統拼湊在一起。到目前爲止,我已經設置了網絡攝像頭流和麪部識別組件,但是我很難將它們放在一起。無法逐幀分析opencv2捕獲設備

現在,問題是將每幀從網絡攝像頭傳遞到面部檢測和識別組件。

相關的代碼是:

# Capture frame-by-frame 
    ret, frame = video_capture.read() 
    image=cv2.VideoCapture.grab(frame) 
    image_grey=cv2.cvtColor(image,cv2.COLOR_BGR2GRAY) 
    faces = faceCascade.detectMultiScale(image_grey,scaleFactor=1.2,minNeighbors=5,minSize=(25,25),flags=0) 

然而,這給了我:

Traceback (most recent call last): 
    File "webcam_cv3(2).py", line 66, in <module> 
    image=cv2.VideoCapture.grab(frame) 
AttributeError: 'builtin_function_or_method' object has no attribute 'grab' 

我一直在尋找通過opencv2 documentatioon和我似乎無法找到任何理由cv2.VideoCapture.grab無效。

我使用Python 2.7與opencv2。 任何幫助真的會感激!

+0

['cv2.VideoCapture'(http://docs.opencv.org/2.4/modules/highgui/doc/reading_and_writing_images_and_video.html#videocapture-videocapture)是一類。在你可以調用成員函數之前,你首先需要構造這個類的一個對象。 –

回答

0

ret, frame = video_capture.read()已經爲您提供frame作爲np.array。然後,您可以去:

image_grey = cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY) 
faces = faceCascade.detectMultiScale(image_grey,scaleFactor=1.2,minNeighbors=5,minSize=(25,25),flags=0) 
+0

感謝您的快速回復,但後來我們得到:'Traceback(最近調用最後一個): 文件「webcam_cv3(2).py」,66行,in image_grey = cv2.cvtColor(image,cv2.COLOR_BGR2GRAY) NameError:name'image'未定義' – Aperce19

+0

我的意思是'frame',請參閱編輯。 –

+0

它解決了這個問題,但後來給我們提供了:'Traceback(最近一次調用最後一個): 文件「webcam_cv3(2).py」,行83,in Datafile [「Data」] = Data_list File「/ usr /lib/python2.7/shelve.py「,第133行,在__setitem__ self.dict [key] = f.getvalue() 文件」/usr/lib/python2.7/shelve.py「,第79行,在關閉 增加ValueError('封閉架子上的無效操作') ValueError:無效操作在閉合架子上' – Aperce19