如何发布"孤儿"OpenCV视频作者



我写了一个使用 opencv 和videowriter生成视频输出的函数

我正在从我的spyder/ipython IDE中的脚本调用此函数。 在调试过程中,该函数仍然有故障,有时它会中止而不释放视频文件。我尝试实现try/exception,但仍然有一些实例没有被捕获。

每次发生这种情况时,输出视频文件都会保持锁定状态,例如,我无法使用Windows资源管理器删除它,也无法使用与输出相同的文件名来再次运行该程序,直到我关闭并重新启动spyder IDE。

有没有办法在不关闭 IDE 的情况下查找和释放所有这些"孤立"视频作者对象?

这是我的代码的虚拟示例:

import cv2
import numpy as np
def video_processing(path):
    fourcc=cv2.VideoWriter_fourcc('X', 'V', 'I', 'D')
    fps=30
    videoOut = cv2.VideoWriter(path,fourcc,fps,(100 ,100))
    #some processing:
    for i in range(10):
        #result=np.ones((100,100))
        #deliberately cause an error by providing misfit result
        #result=np.ones((101,101))
        #on some systems, dtype needs to be specified as pointed out in one answer
        result=np.ones((101,101),dtype = np.uint8)
    videoOut.write(result)

实际上,您的代码会给出错误。您必须指定result = np.ones((100,100), dtype = np.uint8)才能运行。否则,您将获得失败的 OpenCV 断言。

我可以毫无问题地删除视频(我使用的是 Python IDLE),即使不关闭控制台也是如此。

相关内容

  • 没有找到相关文章

最新更新