Добавление захваченных кадров из нескольких видеофайлов в список списков

python list opencv

299 просмотра

1 ответ

Я пытаюсь добавить список со списком кадров, прочитанных из нескольких видеофайлов. У меня есть три видеофайла, используя класс VideoCapture, я читаю все три файла в цикле и пытаюсь вставить чтение в список. Наконец, я хочу список списков кадров, прочитанных из файлов. например:

кадры из file1.avi: [1,2,3,4,5,6]

кадры из file2.avi: [1,2,3,4,5,6,7,8,9]

кадры из 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:\Users\chaitanya\Desktop\Thesis\*.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()
Автор: DENDULURI CHAITANYA Источник Размещён: 08.11.2019 11:30

Ответы (1)


1 плюс

Решение

Я хочу вывод как: [[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:\Users\chaitanya\Desktop\Thesis\*.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)выводом.

Автор: Fabian Размещён: 21.08.2016 06:44
Вопросы из категории :
32x32