이미지와 동영상 처리를 위해 널리 사용되는 OpenCV (Open Source Computer Vision Library)는 Python에서도 사용할 수 있습니다. OpenCV를 사용하면 동영상에서 원하는 작업을 수행하는 다양한 필터를 적용할 수 있습니다. 이번 포스트에서는 OpenCV를 사용하여 이미지에서 동영상 필터링을 하는 방법을 설명하겠습니다.
필요한 라이브러리 설치
먼저 OpenCV를 설치하는 것부터 시작합니다. 아래의 명령어를 사용하여 OpenCV를 설치합니다.
pip install opencv-python
이미지를 동영상으로 변환하기
이미지를 처리하기 전에, 먼저 이미지를 동영상으로 변환해야 합니다. 아래의 코드를 사용하여 이미지를 동영상으로 변환할 수 있습니다.
import cv2
def image_to_video(input_image_path, output_video_path, fps):
image = cv2.imread(input_image_path)
height, width, _ = image.shape
video_writer = cv2.VideoWriter(output_video_path, cv2.VideoWriter_fourcc(*"MJPG"), fps, (width, height))
video_writer.write(image)
video_writer.release()
# 이미지를 동영상으로 변환
image_to_video("input_image.jpg", "output_video.avi", 30)
위의 코드에서 input_image_path
는 입력 이미지 파일의 경로를, output_video_path
는 출력 동영상 파일의 경로를, fps
는 동영상의 초당 프레임 수를 나타냅니다.
동영상 필터링하기
이제 이미지를 동영상으로 변환했으므로, 동영상에 필터를 적용해보겠습니다. 아래의 코드는 이미지에 그레이스케일 필터를 적용한 후 동영상으로 저장하는 예제입니다.
import cv2
def video_filter(input_video_path, output_video_path):
video = cv2.VideoCapture(input_video_path)
fps = video.get(cv2.CAP_PROP_FPS)
width = int(video.get(cv2.CAP_PROP_FRAME_WIDTH))
height = int(video.get(cv2.CAP_PROP_FRAME_HEIGHT))
video_writer = cv2.VideoWriter(output_video_path, cv2.VideoWriter_fourcc(*"MJPG"), fps, (width, height), isColor=False)
while True:
ret, frame = video.read()
if not ret:
break
gray_frame = cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY)
video_writer.write(gray_frame)
video.release()
video_writer.release()
# 동영상 필터링
video_filter("input_video.avi", "output_filtered_video.avi")
위의 코드에서 input_video_path
는 입력 동영상 파일의 경로를, output_video_path
는 출력 동영상 파일의 경로를 나타냅니다. 해당 코드는 입력 동영상의 각 프레임을 그레이스케일로 변환한 후 동영상으로 저장합니다.
결론
OpenCV를 사용하면 이미지에서 동영상으로의 변환과 동영상 필터링을 쉽게 수행할 수 있습니다. 이번 포스트에서는 이미지를 동영상으로 변환하고, 그레이스케일 필터를 적용하여 동영상으로 저장하는 예제를 다루었습니다. OpenCV를 활용하여 다양한 동영상 처리 작업을 수행해보세요!