[파이썬] 이미지 처리 자동화

이미지 처리는 여러 분야에서 매우 중요한 작업입니다. 그러나 대량의 이미지를 처리하는 작업은 반복적이고 번거로울 수 있습니다. 이러한 작업을 자동화하는 것은 시간을 절약하고 효율성을 높이는 데에 도움이 됩니다.

Python은 이미지 처리 작업을 자동화하는 데에 매우 유용한 언어입니다. 다양한 라이브러리와 도구를 제공하며, 이를 활용하여 이미지를 쉽게 조작하고 분석할 수 있습니다.

이미지 처리 자동화를 위한 라이브러리

1. Pillow

Pillow은 이미지 처리를 위한 파이썬 라이브러리입니다. 이미지를 로드하고 저장하는 기능뿐만 아니라 크기 조정, 회전, 필터링, 자르기 등 다양한 이미지 처리 작업을 수행할 수 있습니다. Pillow를 사용하면 이미지 처리 작업을 자동화하는 데에 유용하게 활용할 수 있습니다.

from PIL import Image

# 이미지 로드
image = Image.open("image.jpg")

# 이미지 크기 조정
resized_image = image.resize((800, 600))

# 이미지 저장
resized_image.save("resized_image.jpg")

2. OpenCV

OpenCV는 컴퓨터 비전과 이미지 처리를 위한 라이브러리입니다. 이미지를 로드하고 처리하는 데에 특화되어 있으며, 얼굴 인식, 객체 추적, 영상 처리 등 다양한 작업을 수행할 수 있습니다. OpenCV를 사용하면 이미지 처리 작업을 자동화하는 데에 효과적으로 활용할 수 있습니다.

import cv2

# 이미지 로드
image = cv2.imread("image.jpg")

# 이미지 회전
rotated_image = cv2.rotate(image, cv2.ROTATE_90_CLOCKWISE)

# 이미지 저장
cv2.imwrite("rotated_image.jpg", rotated_image)

이미지 처리 자동화 예시

이미지 처리 자동화를 실제로 활용하는 예시를 살펴보겠습니다. 아래는 특정 폴더에 있는 모든 이미지 파일들을 자동으로 크기를 조정하고 회전시키는 간단한 코드입니다.

import os
from PIL import Image

# 이미지 폴더 경로
image_folder = "images/"

# 결과 폴더 경로
output_folder = "processed_images/"

# 결과 폴더가 없는 경우 생성
if not os.path.exists(output_folder):
    os.makedirs(output_folder)

# 이미지 폴더 내의 파일들을 순회
for filename in os.listdir(image_folder):
    if filename.endswith(".jpg") or filename.endswith(".png"):
        # 이미지 로드
        image_path = os.path.join(image_folder, filename)
        image = Image.open(image_path)

        # 이미지 크기 조정
        resized_image = image.resize((800, 600))

        # 이미지 회전
        rotated_image = resized_image.rotate(90)

        # 결과 이미지 저장
        output_path = os.path.join(output_folder, filename)
        rotated_image.save(output_path)

        print(f"Processed image: {filename}")

위의 코드를 실행하면 images/ 폴더 내의 모든 이미지 파일들이 크기가 조정되고 90도 회전된 후에 processed_images/ 폴더에 저장됩니다.

이와 같이 Python의 이미지 처리 라이브러리를 활용하여 이미지 처리 작업을 자동화할 수 있습니다. 이를 통해 반복적이고 번거로운 작업을 자동으로 처리하여 시간과 노력을 절약할 수 있습니다.