최근 컴퓨터 비전 및 이미지 처리 분야에서 Python과 OpenCV의 조합이 매우 주목받고 있습니다. Python은 그 간단한 문법과 다양한 라이브러리 덕분에 데이터 처리와 분석에 매우 유용하고, OpenCV는 오픈 소스 컴퓨터 비전 라이브러리로, 이미지 처리와 분석에 필요한 다양한 기능을 제공합니다. 이번 글에서는 OpenCV를 활용하여 이미지 처리의 기초부터 고급 기능까지 살펴보겠습니다.

OpenCV 설치 및 기본 사용법
OpenCV를 사용하기 위해서는 먼저 해당 라이브러리를 설치해야 합니다. Python의 패키지 관리자인 pip를 활용해 다음 명령어를 입력하면 설치할 수 있습니다:
pip install opencv-python
설치가 완료된 후, 간단한 이미지를 불러오고 표시하는 기본적인 코드를 작성해 보겠습니다:
import cv2
# 이미지 파일을 읽어옵니다
image = cv2.imread('image.jpg')
# 이미지를 화면에 표시합니다
cv2.imshow('Image', image)
# 사용자의 키 입력을 기다립니다
cv2.waitKey(0)
# 모든 창을 닫습니다
cv2.destroyAllWindows()
이 코드는 이미지를 불러온 후 지정된 창에 표시하고, 사용자가 키를 누를 때까지 대기합니다.
기본 이미지 처리 기능
OpenCV는 이미지를 다양한 방식으로 처리할 수 있는 여러 기능을 제공합니다. 여기서는 이미지를 크기 조절하고, 회전하며, 필터를 적용하는 방법을 살펴보겠습니다.
이미지 크기 조절
이미지의 크기를 변경하는 것은 매우 간단합니다. 다음 예제를 통해 이미지를 특정 크기로 조정할 수 있습니다:
resized_image = cv2.resize(image, (200, 200))
이렇게 하면 원래 이미지의 비율을 유지하지 않고 200×200 픽셀로 변환됩니다.
이미지 회전
회전은 변환 행렬을 이용해 쉽게 수행할 수 있습니다. 다음은 이미지를 45도 회전시키는 코드입니다:
import numpy as np
# 회전 중심과 각도를 정의합니다
height, width = image.shape[:2]
center = (width // 2, height // 2)
rotation_matrix = cv2.getRotationMatrix2D(center, 45, 1.0)
# 이미지를 회전시킵니다
rotated_image = cv2.warpAffine(image, rotation_matrix, (width, height))
이미지 필터링
가우시안 블러와 같은 필터를 적용하여 이미지를 부드럽게 만들 수 있습니다. 가우시안 블러를 적용하는 방법은 다음과 같습니다:
blurred_image = cv2.GaussianBlur(image, (5, 5), 0)
이미지 색상 처리
OpenCV는 색상 공간 변환을 통해 이미지의 색상을 조정하는 기능도 제공합니다. 다음 코드는 색상 공간을 BGR에서 HSV로 변환하는 방법입니다:
hsv_image = cv2.cvtColor(image, cv2.COLOR_BGR2HSV)
색상 필터링
특정 색상을 추출하는 필터링을 위해 HSV 색상 공간을 사용하는 것이 유용합니다. 예를 들어, 파란색을 추출하려면 다음과 같은 코드를 사용할 수 있습니다:
lower_blue = np.array([100, 150, 0])
upper_blue = np.array([140, 255, 255])
mask = cv2.inRange(hsv_image, lower_blue, upper_blue)
blue_objects = cv2.bitwise_and(image, image, mask=mask)
이미지에서 문자 인식하기
OpenCV와 함께 Tesseract-OCR을 사용할 경우 이미지를 통해 문자를 추출할 수 있습니다. Tesseract는 Python에서 사용할 수 있는 OCR 라이브러리입니다.
다음 코드는 Tesseract를 사용해 이미지에서 텍스트를 추출하는 방법을 보여줍니다:
import pytesseract
# 이미지 파일을 읽어옵니다
image = cv2.imread('image_with_text.jpg')
# Pytesseract로 이미지에서 텍스트를 추출합니다
text = pytesseract.image_to_string(image, lang='kor+eng')
print(text)

결론
이처럼 Python과 OpenCV를 활용하면 이미지 처리에 필요한 많은 작업을 간단한 코드로 수행할 수 있습니다. 기본적인 작업부터 시작해 고급 이미지 처리 기술까지, OpenCV는 개발자에게 다양하고 강력한 도구를 제공합니다. 이 기술들은 데이터 분석, 실시간 영상 처리, 컴퓨터 비전 애플리케이션 등 여러 분야에서 활용될 수 있습니다.
이미지 처리에 관심이 있는 분들은 OpenCV와 Python을 활용한 프로젝트를 시도해 보시기 바랍니다. 이를 통해 더 깊은 이미지 처리 기술을 익히고, 실제 문제를 해결하는 데 기여할 수 있을 것입니다.
자주 찾는 질문 Q&A
OpenCV를 설치하는 방법은 무엇인가요?
OpenCV를 활용하기 위해서는 Python의 패키지 관리자인 pip를 통해 설치하면 됩니다. 명령 프롬프트에 ‘pip install opencv-python’을 입력하면 설치가 진행됩니다.
이미지에서 특정 색상을 추출하는 방법은 어떻게 되나요?
특정 색상을 추출하려면 이미지의 색상 공간을 HSV로 변환한 후, 원하는 색상의 범위를 정의하여 마스크를 생성하면 됩니다. 그 후, 비트 연산을 통해 해당 색상의 객체를 분리할 수 있습니다.