[파이썬] imageio 이미지 시퀀스를 비디오로 변환

이미지 처리와 비디오 변환은 데이터 시각화, 영상 편집 등 다양한 분야에서 필수적인 작업입니다. Python에서는 imageio 라이브러리를 사용하여 이미지 시퀀스를 비디오로 변환할 수 있습니다.

imageio 라이브러리

imageio는 Python에서 다양한 이미지 파일 형식을 읽고 쓰기 위한 라이브러리입니다. 이 라이브러리를 사용하면 간단하게 이미지를 로드하고 저장할 수 있습니다.

import imageio

# 이미지 로드
image = imageio.imread('image.jpg')

# 이미지 저장
imageio.imsave('new_image.jpg', image)

이미지 시퀀스를 비디오로 변환하기

이미지 시퀀스를 비디오로 변환하려면 여러 이미지를 순서대로 읽고, 프레임으로 결합하고, 비디오 파일로 저장해야 합니다. imageio를 사용하여 다음과 같이 할 수 있습니다.

import imageio
import os

# 이미지 경로 지정
image_folder = 'image_sequence'
output_file = 'output_video.mp4'

# 이미지 파일 목록 가져오기
images = sorted(os.listdir(image_folder))

# 비디오 작성기 생성
writer = imageio.get_writer(output_file, fps=30)  # FPS 설정

# 이미지 시퀀스를 비디오로 변환
for image_file in images:
    image_path = os.path.join(image_folder, image_file)
    frame = imageio.imread(image_path)
    writer.append_data(frame)

# 비디오 작성기 종료
writer.close()

위 코드에서는 image_folder 변수에 이미지 시퀀스가 저장된 폴더의 경로를 지정하고, output_file 변수에 생성되는 비디오 파일의 이름과 경로를 지정합니다. fps 변수는 초당 프레임 수를 설정하는데, 이 값을 조정하여 비디오의 재생 속도를 조절할 수 있습니다.

images 변수에는 이미지 파일의 목록을 정렬하여 저장합니다. 그런 다음, imageio.get_writer() 함수를 사용하여 비디오 작성기를 생성하고 fps 값을 설정합니다. 이제 이미지 시퀀스를 비디오로 변환하는 작업을 수행합니다. 각 이미지 파일을 읽어서 writer.append_data() 함수를 사용하여 프레임으로 추가하고, writer.close() 함수를 호출하여 비디오 작성기를 종료합니다.

이제 위의 코드를 실행하면 지정한 폴더의 이미지 시퀀스가 비디오 파일로 변환된 것을 확인할 수 있습니다.

이러한 방법으로 imageio 라이브러리를 사용하여 이미지 시퀀스를 비디오로 변환할 수 있습니다. 이를 통해 데이터 시각화나 영상 편집 작업에서 유용하게 활용할 수 있습니다.