这个在 python OpenCV 中使用 cv2.VideoCapture
从文件读取视频的示例内存不足:
import cv2
cap = cv2.VideoCapture('file.mp4')
while True:
ret, frame = cap.read()
在 1920x1080 分辨率下需要大约 300 帧才能用完。在 OpenCV 3.0.0 beta 和 2.4.8 中测试,在 Windows 7 64 位的最新 Pythonxy 中运行。
需要向此代码添加什么才能使其不会耗尽内存,而是在读取下一帧之前释放每一帧?
最佳答案
您可以使用 scikit-image
,它有一个视频加载器,并根据文档支持 Opencv
和 Gstreamer
后端。我从未使用过 Gstreamer
。
import cv2
from skimage.io import Video
cap = Video(videofile)
fc = cap.frame_count()
for i in np.arange(fc):
z = cap.get_index_frame(i)
现在使用框架 z
做任何你想做的事情!
关于python - 读取视频文件时 OpenCV 内存不足,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20989715/