python - 如何旋转摄像机录制的视频?

标签 python opencv video-capture face-detection

我正在尝试检测摄像机录制的视频中的人脸。当我使用网络摄像头视频时,它工作正常。但是,对于摄像机录制的视频,视频会旋转 -90 度。请建议我,如何获得人脸检测的实际视频输出?

import cv2
import sys

cascPath = sys.argv[1]
faceCascade = cv2.CascadeClassifier('C:/Users/HP/Anaconda2/pkgs/opencv-3.2.0-np112py27_204/Library/etc/haarcascades/haarcascade_frontalface_default.xml')

#video_capture = cv2.videoCapture(0)
video_capture = cv2.VideoCapture('C:/Users/HP/sample1.mp4')
w=int(video_capture.get(3))
h=int(video_capture.get(4))

#output = cv2.VideoWriter('output_1.avi',cv2.VideoWriter_fourcc('M','J','P','G'), 60,frameSize = (w,h))

while True:

    ret, frame = video_capture.read()
    frame = rotateImage(frame,90)

    gray = cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY)

    faces = faceCascade.detectMultiScale(gray, 1.3, 5) 

    # Draw a rectangle around the faces
    for (x, y, w, h) in faces:
        cv2.rectangle(frame, (x, y), (x+w, y+h), (0, 255, 0), 2)
    #cv2.imshow('face',i)

    #output.write(frame)

    cv2.imshow('Video', frame)

        if cv2.waitKey(1) & 0xFF == ord('q'):
            break

    video_capture.release()
    output.release()

cv2.destroyAllWindows()

最佳答案

在cv2中你可以使用cv2.rotate函数根据你的要求旋转图像

rotated=cv2.rotate(img, cv2.ROTATE_90_CLOCKWISE)

关于python - 如何旋转摄像机录制的视频?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58910779/

相关文章:

python - 我如何在 Tkinter 中每次访问不同的按钮?

python - 你如何在 Python 中建模随时间变化的东西?

ios - 如何使用WEBRTC最新框架<Anakros/WebRTC>中videoview显示localstream的方法? - 用于 webrtc 框架(iOS)

带有生成器的 Python 内置 "all"

python - Flask-RESTful 别名

opencv:执行在图像像素访问的双指针算法处停止

c# - 将System.Drawing.Bitmap读入OpenCV/Emgu以查找轮廓

c++ - OpenCV中两点之间直线的斜率和长度

c++ - 从 OpenCV 的 VideoCapture 获取的图像与标量之间的整数除法

ios - 我无法将 AVFoundation 视频保存到本地 URL