Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

647
Visualizações
Python creating video from images using opencv

I was trying to create a video to show the dynamic variation of the data, like just continuously showing the images one by one quickly, so I used images (the images just called 1,2,3,4,.....) and wrote the following code:

import cv2
import numpy as np

img=[]
for i in range(0,5):
    img.append(cv2.imread(str(i)+'.png'))

height,width,layers=img[1].shape

video=cv2.VideoWriter('video.avi',-1,1,(width,height))

for j in range(0,5):
    video.write(img)

cv2.destroyAllWindows()
video.release()

and a error was raised:

TypeError: image is not a numpy array, neither a scalar

I think I used the list in a wrong way but I'm not sure. So where did I do wrong?

over 4 years ago · Santiago Trujillo
3 Respostas
Responde à pergunta

0

You are writing the whole array of frames. Try to save frame by frame instead:

...
for j in range(0,5):
  video.write(img[j])
...

reference

over 4 years ago · Santiago Trujillo Relatório

0

You can read the frames and write them to video in a loop. Following is your code with a small modification to remove one for loop.

  import cv2
  import numpy as np
  
  # choose codec according to format needed
  fourcc = cv2.VideoWriter_fourcc(*'mp4v') 
  video = cv2.VideoWriter('video.avi', fourcc, 1, (width, height))

  for j in range(0,5):
     img = cv2.imread(str(i) + '.png')
     video.write(img)

  cv2.destroyAllWindows()
  video.release()

Alternatively, you can use skvideo library to create video form sequence of images.

  import numpy as np
  import skvideo.io
   
  out_video =  np.empty([5, height, width, 3], dtype = np.uint8)
  out_video =  out_video.astype(np.uint8)
  
  for i in range(5):
      img = cv2.imread(str(i) + '.png')
      out_video[i] = img

  # Writes the the output image sequences in a video file
  skvideo.io.vwrite("video.mp4", out_video)

  
over 4 years ago · Santiago Trujillo Relatório

0

You can use this pip package. It provides CLI commands to make video from images.

img_to_vid.py -f images_directory

over 4 years ago · Santiago Trujillo Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda