[파이썬] imageio 이미지에 그림자 효과 추가

이미지 프로세싱은 파이썬에서 많이 사용되는 작업 중 하나입니다. 그 중에서도 imageio 라이브러리는 이미지를 읽고 쓰고 처리하는 데 매우 편리한 기능을 제공합니다. 이번 글에서는 imageio를 사용하여 이미지에 그림자 효과를 추가하는 방법을 알아보겠습니다.

imageio 설치

먼저, imageio 라이브러리를 설치해야 합니다. 터미널에서 아래 명령을 실행하여 설치할 수 있습니다:

pip install imageio

이미지 읽기 및 처리

이제 이미지 파일을 읽어와서 그림자 효과를 추가해 보겠습니다. 아래 예제 코드를 참조해주세요:

import imageio
import numpy as np

def add_shadow(image_path, shadow_intensity):
    # 이미지 파일 읽기
    image = imageio.imread(image_path)

    # 그림자 생성을 위한 복제 이미지 생성
    shadow = image.copy()

    # 그림자를 위한 투명도 마스크 생성
    alpha = np.zeros(image.shape[:2], dtype=np.uint8)
    alpha[:, :] = 255 * shadow_intensity

    # 그림자의 x, y 위치 조정
    shadow_offset = (20, 20)

    # 그림자 이미지에 투명도 마스크를 적용
    shadow[:, :, 3] = alpha

    # 이미지에 그림자 이미지를 추가
    image_with_shadow = np.concatenate((image, shadow), axis=0)

    return image_with_shadow

# 이미지 파일 경로
image_path = "path/to/image.png"

# 그림자의 강도 설정 (0-1 사이의 값, 클수록 진한 그림자)
shadow_intensity = 0.5

# 이미지에 그림자 효과 추가
image_with_shadow = add_shadow(image_path, shadow_intensity)

# 그림자가 추가된 이미지를 파일로 저장
output_path = "path/to/output.png"
imageio.imwrite(output_path, image_with_shadow)

위 코드에서는 add_shadow 함수를 정의하여 이미지에 그림자 효과를 추가합니다. 함수는 이미지 파일 경로와 그림자의 강도를 인자로 받습니다. 강도는 0과 1 사이의 값으로, 숫자가 클수록 그림자가 짙어집니다.

이미지를 읽어와서 복제한 후, 그림자를 생성하기 위한 투명도 마스크를 만듭니다. 그림자의 위치를 조정하고, 투명도 마스크를 그림자에 적용합니다. 마지막으로, 원본 이미지와 그림자 이미지를 결합하여 그림자가 추가된 이미지를 생성합니다.

생성된 이미지는 imageio.imwrite 함수를 사용하여 파일로 저장할 수 있습니다.

실행 결과

위 예제 코드를 실행하면 이미지 파일에 그림자 효과가 추가된 결과를 얻을 수 있습니다.

그림자의 강도를 조절하거나, 그림자의 위치를 변경하는 등 다양한 변형을 시도해보세요. imageio 라이브러리의 다양한 기능을 활용하여 이미지 처리를 더욱 풍부하게 할 수 있습니다.

이제 imageio를 사용하여 이미지에 그림자 효과를 추가하는 방법을 알게 되었습니다. 파이썬을 활용하여 이미지 처리 작업을 수행할 때 유용한 기술 중 하나입니다. 다양한 이미지 프로세싱 작업에서 imageio를 활용해보세요!