我正在虚拟更衣室工作。我使用的是opencv 3.0.0。我用haarcascade来检测上半身。我不想在矩形区域显示头部。在矩形区域,我想向人体的肚脐点显示肩膀。但我不能这样做。所以我需要减小矩形大小以获得我想要的输出。
这是我的上身检测码。它检测到包括头部在内的完整上身。
import numpy as np
import cv2
vid=cv2.VideoCapture(0)
_ instant=vid.read()
avg=np.float32(instant)
file=cv2.CascadeClassifier("./cascade/haarcascade_upperbody.xml")
obj=0
while(1):
_,frame=vid.read()
cv2.accumulateWeighted(frame, avg, 0.1)
background=cv2.convertScaleAbs(avg)
diff=cv2.absdiff(frame, background)
cv2.imshow("input", frame)
bodies=file.detectMultiScale(frame)
for body in bodies:
cv2.rectangle(frame, (body[0], body[1]), (body[0]+body[2], body[0]+body[3]), (255,0,0), 3)
cv2.imshow("Upper Body", frame)
if cv2.waitKey(5)==27:
break
cv2.destroyAllWindows()