【问题标题】:OpenCv - cv2.VideoWriter object has no attribute releaseOpenCv - cv2.VideoWriter 对象没有属性 release
【发布时间】:2014-05-08 22:30:09
【问题描述】:

我在 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()

【问题讨论】:

  • 我很遗憾这里没有答案,因为我现在遇到了同样的问题。 :-(

标签: python linux opencv


【解决方案1】:

不用这条线

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

用这个

fourcc = cv2.VideoWriter_fourcc(*'XVID')

【讨论】:

    【解决方案2】:

    而不是使用下面的行:

    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))))
    

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-03-14
      • 2021-01-25
      • 2021-03-26
      • 1970-01-01
      • 2018-06-21
      • 2018-10-24
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多