[python] OpenCV를 사용하여 이미지에서 동영상에서 색상 파라미터 추출하기

이미지와 동영상은 컴퓨터 비전 분야에서 중요한 자료입니다. 이미지나 동영상에서 특정한 색상 파라미터를 추출하는 것은 영상 처리나 컬러 분석 등에 유용하게 활용될 수 있습니다. 이번에는 Python의 OpenCV 라이브러리를 사용하여 이미지에서 동영상에서 색상 파라미터를 추출하는 방법을 알아보겠습니다.

필요한 라이브러리 설치

먼저, OpenCV를 사용하기 위해 필요한 라이브러리를 설치해야 합니다. 아래의 명령을 사용하여 opencv-python 패키지를 설치합니다.

pip install opencv-python

이미지에서 색상 파라미터 추출하기

import cv2

# 이미지 파일을 읽어옵니다.
image = cv2.imread('image.png')

# 이미지에서 BGR (Blue, Green, Red) 색상 팔레트를 추출합니다.
colors = list(set(image.reshape(-1, 3).tolist()))

# 추출한 색상 팔레트를 출력합니다.
for color in colors:
    b, g, r = color
    print(f"B: {b}, G: {g}, R: {r}")

위의 코드는 image.png 파일에서 색상 값을 추출하는 예제입니다. cv2.imread() 함수를 사용하여 이미지 파일을 읽어온 후, image.reshape(-1, 3).tolist()를 사용해 이미지를 1차원 배열로 변환하고, 각 픽셀의 BGR 값을 추출합니다. 마지막으로, 추출한 색상 값을 출력합니다.

동영상에서 색상 파라미터 추출하기

import cv2

# 동영상 파일을 읽어옵니다.
video = cv2.VideoCapture('video.mp4')

# 동영상의 프레임 수를 가져옵니다.
frame_count = int(video.get(cv2.CAP_PROP_FRAME_COUNT))

# 모든 프레임을 읽어오고 색상 값을 추출합니다.
colors = set()

while True:
    ret, frame = video.read()

    if not ret:
        break

    # 프레임에서 BGR (Blue, Green, Red) 색상 팔레트를 추출합니다.
    frame_colors = list(set(frame.reshape(-1, 3).tolist()))
    colors.update(frame_colors)

video.release()

# 추출한 색상 팔레트를 출력합니다.
for color in colors:
    b, g, r = color
    print(f"B: {b}, G: {g}, R: {r}")

위의 코드는 video.mp4 파일에서 색상 값을 추출하는 예제입니다. cv2.VideoCapture() 함수를 사용하여 동영상 파일을 읽어온 후, video.read()를 사용하여 모든 프레임을 읽어오고 각 프레임에서 BGR 값을 추출합니다. 추출한 색상 값을 colors 집합에 저장한 후, 출력합니다.


이를 통해 OpenCV를 사용하여 이미지와 동영상에서 색상 파라미터를 추출하는 방법을 알아보았습니다. 이러한 색상 추출은 이미지나 동영상을 분석하는 데에 활용될 수 있으며, 컴퓨터 비전 분야에서 더 다양한 응용 사례를 개발할 수 있습니다.

참고 문서: