附加从多个视频文件抓取帧到列表的列表



我正在尝试添加一个列表,其中包含从多个视频文件读取的帧列表。我有三个视频文件,使用videoccapture类,我在一个循环中读取所有三个文件,并试图将读取插入到列表中。最后,我想要一个从文件中读取的帧列表的列表。例如:

frames from file1.avi:[1,2,3,4,5,6]

frames from file2.avi:[1,2,3,4,5,6,7,8,9]

frames from file3。avi: [1, 2, 3, 4, 5, 6, 7, 8, 9, 10)

我希望输出:[[1、2、3、4、5、6],[1,2,3,4,5,6,7,8,9],[1,2,3,4,5,6,7,8,9,10]]

我得到的输出为(1,2,3,4,5,6,1,2,3,4,5,6,7,8,9,1,2,3,4,5,6,7,8,9,10)

下面是我的代码

videoList=glob.glob(r'C:UserschaitanyaDesktopThesis*.avi')
indices=[]
for path in videoList:
    cap = cv2.VideoCapture(path)

   while(cap.isOpened()):
      ret,frame=cap.read()
      if not ret:
          break
      indices.append(cap.get(1))
  cap.release()
  cv2.destroyAllWindows()

我希望输出:[[1、2、3、4、5、6],[1,2,3,4,5,6,7,8,9],[1,2,3,4,5,6,7,8,9,10]]

您只有一个列表indices=[]。如果你想要一个"框架列表的列表",你应该在for循环中扩展第二个列表:

videoList=glob.glob(r'C:UserschaitanyaDesktopThesis*.avi')
videoindices = []
for path in videoList:
    cap = cv2.VideoCapture(path)
    #second List
    indices = [] 
    while(cap.isOpened()):
        ret,frame=cap.read()
        if not ret:
            break
        # append the frames to the secound list
        indices.append(cap.get(1)) 
    cap.release()
    # append the list of frames to the list
    videoindices.append(indices)
print(videoindices)

代码未经过测试。我将稍后测试它,并通过print(videoindices)输出扩展我的答案。

相关内容

  • 没有找到相关文章