[python] 파이썬 moviepy로 동영상 명암 대비 높이기

이번에는 파이썬의 moviepy 라이브러리를 사용하여 동영상의 명암 대비를 높이는 방법을 알아보겠습니다. moviepy는 영상 편집을 위한 파이썬 라이브러리로, 간편하게 동영상 파일을 처리할 수 있습니다.

먼저, moviepy를 설치합니다. 아래의 명령어를 사용하여 설치할 수 있습니다.

pip install moviepy

설치가 완료되었다면, 다음과 같은 코드를 작성하여 명암 대비를 높이는 함수를 만들어보겠습니다.

from moviepy.editor import *
import numpy as np

def increase_contrast(video_path, output_path):
    video = VideoFileClip(video_path)
    duration = video.duration

    # 프레임마다 명암 대비를 높입니다.
    modified_frames = []
    for t in np.arange(0, duration, 1 / video.fps):
        frame = video.get_frame(t)
        modified_frame = np.clip(frame * 1.5, 0, 255).astype(np.uint8)
        modified_frames.append(modified_frame)

    # 수정된 프레임으로 새로운 동영상을 생성합니다.
    modified_video = ImageSequenceClip(modified_frames, fps=video.fps)
    modified_video.write_videofile(output_path)

# 사용 예시
increase_contrast("input.mp4", "output.mp4")

위의 코드에서는 increase_contrast 함수를 정의하였습니다. 이 함수는 동영상 파일의 경로와 결과물을 저장할 경로를 받아서, 동영상의 명암 대비를 높이는 작업을 수행합니다.

동영상 파일을 VideoFileClip 객체로 읽어온 뒤, 각 프레임마다 명암 대비를 높이는 작업을 수행합니다. 이를 위해 해당 프레임의 픽셀 값을 1.5배로 곱하고, 0과 255 사이의 값으로 클리핑하도록 설정합니다. 그리고 이렇게 수정된 프레임들을 modified_frames 리스트에 저장합니다.

마지막으로 ImageSequenceClip 객체를 생성하여 write_videofile 함수를 사용하여 새로운 동영상 파일을 생성합니다.

위의 예시 코드를 실행하면, input.mp4 파일의 명암 대비가 높아진 output.mp4 파일이 생성됩니다.

이처럼 파이썬의 moviepy 라이브러리를 사용하면 동영상의 명암 대비를 손쉽게 높일 수 있습니다. 더 자세한 내용은 공식 문서를 참고하시기 바랍니다.