1. 비주얼 효과
비주얼 효과 소개
오늘은 밝기와 대비를 변경하는 것뿐만 아니라, 여러분의 창작물에 헐리우드 블록버스터 수준의 스타일을 추가하는 방법도 배워볼 거야. 혹은 단순히 오래된 폰으로 찍은 영상이 조금 더 볼 만하게 만들 수도 있어.
비디오 처리에서는 비주얼 효과를 적용하는 방법을 아는 것이 콘텐츠 제작에서 주목받는 비결이라는 사실을 기억해야 해. 비주얼 효과는 비디오를 더 생동감 있게 만들거나 중요한 디테일을 강조하거나 클립의 전체적인 스타일을 바꿀 수 있어.
밝기, 대비 및 색상 변경의 기본
코딩을 시작하기 전에, 비디오에서 밝기, 대비 및 색상이 무엇인지 다시 한번 정리하자.
- 밝기 — 이미지의 전체적인 밝거나 어두움 정도. 밝기를 높이면 비디오가 더 밝아지고, 줄이면 더 어두워져.
- 대비 — 비디오의 가장 밝은 부분과 가장 어두운 부분 간의 차이. 높은 대비는 비디오를 더 생동감 있게 보이게 하고, 낮은 대비는 평평해 보여.
- 색보정 — 비디오 품질을 향상시키기 위한 색 균형 조정 과정이야.
2. 비디오 밝기 변경
이제 코드를 살펴보면서 MoviePy를 사용한 효과 적용 방법을 확인하자.
fl_image()
메서드를 사용하여 비디오 밝기 변경
fl_image
메서드를 통해 비디오의 모든 프레임에 사용자 정의 함수를 적용하여 밝기를 변경할 수 있어. 밝기를 20% 증가시키고 싶다면 1.2를 곱하면 돼.
Python
from moviepy.editor import VideoFileClip
# 밝기 변경 함수
def change_brightness(image, factor=1.2):
return image * factor
# 비디오 파일 열기
clip = VideoFileClip("video.mp4")
# 밝기 변경 적용
brightened_clip = clip.fl_image(lambda frame: change_brightness(frame, 1.2))
# 결과 저장
brightened_clip.write_videofile("brightened_video.mp4")
moviepy.video.fx.all을 사용하여 비디오 밝기 변경
lum_contrast
효과를 사용하여 클립의 밝기를 증가시키거나 감소시킬 수도 있어.
비디오 밝기 증가
Python
from moviepy.editor import VideoFileClip
from moviepy.video.fx.all import lum_contrast
# 비디오 로드
video = VideoFileClip("sample_video.mp4")
# 밝기 증가 효과 적용
bright_video = lum_contrast(video, lum=30) # 밝기를 30 단위 증가
# 결과 저장
bright_video.write_videofile("bright_video.mp4")
이 예시에서:
lum_contrast(video, lum=30)
는 비디오의 밝기를 30 단위만큼 증가시켜. 밝기 값은 양수(밝기 증가)나 음수(어둡게) 모두 가능해.
비디오 밝기 감소
Python
# 밝기를 줄이기 위한 효과 적용
dark_video = lum_contrast(video, lum=-30) # 밝기를 30 단위 줄이기
# 결과 저장
dark_video.write_videofile("dark_video.mp4")
3. 비디오 대비 변경
비디오 대비는 밝고 어두운 영역의 밝기 및 채도를 조정하는 것과 관련 있어. 대비를 높이면 밝은 영역은 더 밝고 어두운 영역은 더 어둡게 되고, 대조적으로 대비를 낮추면 밝은 부분과 어두운 부분 간의 차이를 줄여.
fl_image()
메서드를 사용하여 대비 변경
이미지 변환 함수를 사용하여 대비를 변경할 수 있어. 이렇게 진행하면 돼:
Python
import numpy as np
# 대비 변경 함수
def change_contrast(image, factor=1.5):
mean = np.mean(image)
return (image - mean) * factor + mean
# 대비 변경 적용
contrasted_clip = clip.fl_image(lambda frame: change_contrast(frame, 1.5))
# 결과 저장
contrasted_clip.write_videofile("contrasted_video.mp4")
lum_contrast()
메서드를 사용하여 대비 변경
비디오 대비 증가
Python
# 대비 증가
high_contrast_video = lum_contrast(video, contrast=1.5) # 대비를 50% 증가
# 결과 저장
high_contrast_video.write_videofile("high_contrast_video.mp4")
여기서:
contrast = 1.5
는 대비를 50% 증가시켜. 대비를 높이려면 1보다 큰 값을 지정하면 돼.
비디오 대비 감소
Python
# 대비 감소
low_contrast_video = lum_contrast(video, contrast=0.5) # 대비를 50% 감소
# 결과 저장
low_contrast_video.write_videofile("low_contrast_video.mp4")
여기서:
contrast = 0.5
는 대비를 50% 감소시켜. 1보다 작은 값은 대비를 낮추어 이미지를 덜 선명하게 만들어.
4. 비디오 색상 특성 변경
MoviePy는 색상 팔레트 변경, 흑백 모드 전환 등 다양한 색상 효과를 제공해.
fl_image()
메서드를 사용한 색보정
색보정을 위해 rgb_color
기능을 사용하여 비디오의 색상 팔레트를 조정할 수 있어.
Python
def adjust_color(image, factor=0.8):
return image * np.array([1, factor, factor]) # 녹색 및 파란색 채널 감소
# 색보정 적용
color_corrected_clip = clip.fl_image(lambda frame: adjust_color(frame, 0.8))
# 결과 저장
color_corrected_clip.write_videofile("color_corrected_video.mp4")
GO TO FULL VERSION