OpenCv - cv2.VideoWriter对象没有release属性

3
我正在使用在Linux 64位机器上安装的Python 2.7.3版本和OpenCV。我希望从我的Logitech C270摄像头中获取帧并将其存储为AVI视频。代码运行良好,也显示了捕获的视频以及生成的输出文件。但是当我尝试播放该文件时,它根本无法播放,同时终端显示“cv2.VideoWriter对象没有属性release”错误。因此,如果有人能告诉我如何在完成后释放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()

很遗憾这里没有任何答案,因为我现在也遇到了同样的问题。 :-( - Rafael_Espericueta
2个回答

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

不要使用这行代码

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

请使用这个。
fourcc = cv2.VideoWriter_fourcc(*'XVID')

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接