[파이썬] imageio 이미지에서 특정 색상 추출

이미지 처리는 컴퓨터 비전 분야에서 중요한 역할을 합니다. 이 중, 특정 색상을 추출하는 작업은 많은 응용 프로그램에서 사용될 수 있습니다. 이번 블로그에서는 Python의 imageio 라이브러리를 사용하여 이미지에서 특정 색상을 추출하는 방법을 알아보겠습니다.

imageio 라이브러리 설치

우선, imageio 라이브러리를 설치해야 합니다. 아래의 명령어를 사용하여 imageio 라이브러리를 설치할 수 있습니다.

pip install imageio

이미지에서 특정 색상 추출하기

이제 imageio 라이브러리를 사용하여 이미지에서 특정 색상을 추출하는 방법을 살펴보겠습니다.

import imageio
import numpy as np

def extract_color(image, target_color):
    # 이미지를 RGB 형식으로 로드합니다.
    image_rgb = imageio.imread(image)

    # 이미지의 차원을 얻습니다.
    height, width, _ = image_rgb.shape

    # 이미지를 1차원 배열로 변환합니다.
    image_flat = image_rgb.reshape((height * width, 3))

    # 목표 색상과의 거리를 계산합니다.
    distances = np.linalg.norm(image_flat - target_color, axis=1)

    # 거리가 가장 작은 픽셀의 인덱스를 찾습니다.
    closest_index = np.argmin(distances)

    # 픽셀 인덱스를 이미지 좌표로 변환합니다.
    x = closest_index % width
    y = closest_index // width

    return x, y

# 이미지 파일 경로
image_path = "image.jpg"

# 추출할 색상 (예: 빨간색)
target_color = np.array([255, 0, 0])

# 특정 색상 추출
x, y = extract_color(image_path, target_color)
print("추출된 색상 위치:", x, y)

위의 코드에서는 extract_color 함수를 정의하여 이미지에서 특정 색상을 추출합니다. 이 함수는 이미지 파일 경로와 추출할 색상을 입력으로 받고, 추출된 색상의 위치를 반환합니다. 반환된 위치는 이미지의 x, y 좌표로 표현됩니다.

결론

Python의 imageio 라이브러리를 사용하여 이미지에서 특정 색상을 추출하는 방법에 대해 알아보았습니다. 이를 활용하여 다양한 이미지 처리 및 컴퓨터 비전 프로젝트를 개발할 수 있습니다. imageio 라이브러리의 다양한 기능을 사용하여 이미지 처리에 대한 더 많은 탐구를 진행해보세요.