我写了一个使用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)
答案 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)。