如何发布'孤儿'opencv videowriter

时间:2016-07-13 10:53:51

标签: python 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)

1 个答案:

答案 0 :(得分:0)

实际上,您的代码会出错。您必须指定MyQPushButton { background-color: transparent; border-image: url(<InstallationPath>/Resources/Images/Buttons/MyQPushButton_a.png); } MyQPushButton:pressed { background-color: transparent; border-image: url(<InstallationPath>/Resources/Images/Buttons/MyQPushButton_b.png); } MyQPushButton:disabled { background-color: transparent; border-image: url(<InstallationPath>/Resources/Images/Buttons/MyQPushButton_d.png); } MyQPushButton:checked { background-color: transparent; border-image: url(<InstallationPath>/Resources/Images/Buttons/MyQPushButton_c.png); } 才能运行它。否则你会得到一个失败的OpenCV断言。

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