[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 라이브러리를 사용하면 동영상의 명암 대비를 손쉽게 높일 수 있습니다. 더 자세한 내용은 공식 문서를 참고하시기 바랍니다.