OpenCv - cv2.VideoWriter对象没有属性释放

时间:2014-03-29 10:57:02

标签: python linux opencv

我在Linux 64位机器上使用OpenCV和python 2.7.3。我想从Logitech C270中获取帧并将其存储为AVI视频。代码工作正常,它还向我显示捕获的视频,还创建输出文件。但是当我尝试播放文件时,它根本就没有播放,而且我正在播放' cv2.VideoWriter对象没有属性释放'终端错误。所以,如果有人可以告诉我如何在完成后释放cv2.VideoWriter。

import numpy as np
import cv2

cap = cv2.VideoCapture(1)

fourcc = cv2.cv.CV_FOURCC('X','V','I','D')
out = cv2.VideoWriter('output.avi', fourcc, 20.0,(640,480))

while(True):
    ret, frame = cap.read()
    if cap.isOpened() == 0:
        cap.open(1)

    if ret==True:

        gray = cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY)
        out.write(gray)
        cv2.imshow('frame',gray)

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

    else:
        break

cap.release()
out.release()
cv2.destroyAllWindows()

2 个答案:

答案 0 :(得分:0)

而不是使用以下几行:

fourcc = cv2.cv.CV_FOURCC('X','V','I','D')
out = cv2.VideoWriter('output.avi', fourcc, 20.0,(640,480))

使用那些:

fourcc = cv2.VideoWriter_fourcc(*'DIVX')
out = cv2.VideoWriter('output.avi', fourcc, 20.0, (int(cap.get(3)),int(cap.get(4))))

我想,这会对你有所帮助。

答案 1 :(得分:-1)

而不是使用此行

fourcc = cv2.cv.CV_FOURCC('X','V','I','D')

使用此

fourcc = cv2.VideoWriter_fourcc(*'XVID')