2017-05-12 1 views
0

私はインターネット上のいくつかのコードを使って歩行者を検出しようとしています。しかし、いくつかのproblems.Codesがあり、次のようなものです:python + opencvで人間の画像を検出する

import cv2 
import numpy as np 
image=cv2.imread("image path") 
gray=cv2.cvtColor(image,cv2.COLOR_BGR2GRAY) 
cascadeBody=cv2.CascadeClassifier("put cascade.xml here") 
bodies=cascadeBody.detectMultiScale(gray,1.1,4) 
for (x, y, w, h) in bodies: 
cv2.rectangle(frame, (x, y), (x+w, y+h), (255, 255, 0), 4) 
roi_gray =gray[y:y+h, x:x+w] 
roi_color=image[y:y+h, x:x+w] 
cv2.imshow("img",image) 
cv2.waitKey(0) 
cv2.destroyAllWindows() 

をエラーメッセージ:

for (x, y, w, h) in bodies:  
... cv2.rectangle(frame, (x, y), (x+w, y+h), (255, 255, 0), 4) 

... roi_gray =gray[y:y+h, x:x+w] 

... roi_color=image[y:y+h, x:x+w] 

... 
... cv2.imshow("img",image) 

    File "<stdin>", line 6 

    cv2.imshow("img",image) 
     ^SyntaxError: invalid syntax 

私はcv2.imshow("img",image)for loopの外にあるべきだと思うが、私は終了する方法がわかりませんループして画像を表示します。

誰でも手伝ってもらえますか?
ありがとうございました!

答えて

0

最後の3行をループから外します。

for (x, y, w, h) in bodies:  
    cv2.rectangle(frame, (x, y), (x+w, y+h), (255, 255, 0), 4) 
    roi_gray =gray[y:y+h, x:x+w] 
    roi_color=image[y:y+h, x:x+w] 
cv2.imshow("img",image) 
cv2.waitKey(0) 
cv2.destroyAllWindows() 

その画像を表示しています。

関連する問題