Python/OpenCV网络摄像头反向移动

1 投票
2 回答
10197 浏览
提问于 2025-04-17 21:32

我不太确定问题出在哪里,但当我在摄像头前移动时,它能捕捉到我的脸,但显示的却不是我真实的动作,感觉是反向的。

有没有人知道怎么解决这个问题?

def Webcam(webcam, classifier, downScale):
        
        if webcam.isOpened():
                rval, frame = webcam.read()
        else:
                rval = False

        while rval:
                # detect faces and draw bounding boxes
                minisize = (frame.shape[1]/downScale,frame.shape[0]/downScale)
                miniframe = cv2.resize(frame, minisize)
                faces = classifier.detectMultiScale(miniframe)
                for f in faces:
                        x, y, w, h = [ v*downScale for v in f ]
                        cv2.rectangle(frame, (x,y), (x+w,y+h), (0,0,255))
         
                cv2.putText(frame, "Press ESC to close.", (5, 25),
                                        cv2.FONT_HERSHEY_SIMPLEX, 1.0, (255,255,255))
                cv2.imshow("Face Crop", frame)
         
                # get next frame
                rval, frame = webcam.read()
         
                key = cv2.waitKey(10)
                if key in [27, ord('Q'), ord('q')]: # exit on ESC
                        break   

2 个回答

-1

rval, frame = webcam.read()

frame = cv2.flip(frame,0)

cv2.flip()这个函数里,如果你想要上下翻转图像,可以用0;如果想要左右翻转,可以用1;如果想要同时上下和左右都翻转,就用-1。

这个用法在@berak提供的文档里有详细说明,链接在这里:flip()

12

相机并不是镜子。

但是你可以很简单地使用 flip() 这个功能,让它像镜子一样工作:

rval, frame = webcam.read()
frame = cv2.flip(frame,1)

撰写回答