繁体   English   中英

为什么我的笔记本电脑在使用Python列表时会卡住?

[英]Why my laptop gets stuck when working with Python list?

我有一个视频文件,我现在想要的是将所有视频的帧放入Python列表中。 我正在使用Python的OpenCV库来完成它。 但我的笔记本电脑永远不会这样做。 它只是卡住了我必须切断电源重新启动它。 我的猜测是由于内存不足,python列表无法处理所有帧。 这是代码,我相信它是做我想要的正确方法(语法)。 现在我需要为什么笔记本电脑卡住以及使用列表以外的任何解决方案。

import cv2
video = cv2.VideoCapture("myvideo.mp4")
all_frames = []
while 1:
    ret, frame = video.read()
    if ret:
        all_frames.append(frame)
        continue
    break

以下是有关可能对您有所帮助的视频的一些数据
该视频包含7000帧。
每帧具有(1080,1920)维度

你不能这样做。

在读取时,帧从.mp4原始输出未压缩 ,如每像素3个字节等。

所以你想存储总共7000 * 3 * 1080 * 1920字节,大约是43 Gb !!

更何况,由于名单的不断调整大小append创造更加副本,所以即使你有可用内存,这将是很长的。

该计划背后的想法可能是分析框架。 所以基本上你不需要同时在内存中的所有帧。

在这种情况下,读取少数(在旋转缓冲区中),执行形状检测分析,无论如何,存储分析的数据(小得多)并丢弃原始数据,重复(执行实时分析的程序不能存储所有数据,因为它们永远在运行)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM