Computer >> 컴퓨터 >  >> 프로그래밍 >> Python

Python OpenCV로 배우는 이미지 산술 연산: 덧셈과 뺄셈 완벽 가이드

개요

이 튜토리얼에서는 Python의 OpenCV 라이브러리를 사용해 이미지에 산술 연산(덧셈, 뺄셈)을 수행하는 방법을 알아봅니다. 시작하기 전에 OpenCV 모듈이 설치되어 있어야 합니다.

OpenCV 설치하기

다음 명령어를 실행하여 OpenCV 모듈을 설치합니다.

pip install opencv-python==4.1.1.26

위 명령어를 실행하면 아래와 같은 성공 메시지가 출력됩니다.

Collecting opencv-python==4.1.1.26
Downloading https://files.pythonhosted.org/packages/...
Requirement already satisfied: numpy>=1.14.5 ...
Installing collected packages: opencv-python
Successfully installed opencv-python-4.1.1.26

두 이미지 더하기

이미지 덧셈에는 두 개의 이미지가 필요합니다. OpenCV에서는 cv2.add(image_one, image_two) 메서드를 제공하며, 이를 통해 매우 간단하게 두 이미지를 더할 수 있습니다. 단, 주의할 점은 두 이미지의 크기가 반드시 동일해야 한다는 것입니다. 그럼 사용할 이미지를 확인해 보겠습니다.

첫 번째 이미지

Python OpenCV로 배우는 이미지 산술 연산: 덧셈과 뺄셈 완벽 가이드

두 번째 이미지

Python OpenCV로 배우는 이미지 산술 연산: 덧셈과 뺄셈 완벽 가이드

이제 코드를 살펴보겠습니다.

예제 코드

# cv2 모듈 임포트
import cv2
# 이미지를 읽어 변수에 저장
image_one = cv2.imread('_one.jpg')
image_two = cv2.imread('_two.jpg')
# 두 이미지 더하기
result_image = cv2.add(image_one, image_two)
# 최종 이미지 화면에 출력
cv2.imshow('Final Image', result_image)
# 메모리 해제
if cv2.waitKey(0) & 0xff == 27:
    cv2.destroyAllWindows()

실행 결과

결과 이미지

Python OpenCV로 배우는 이미지 산술 연산: 덧셈과 뺄셈 완벽 가이드

이미지 빼기

두 이미지의 뺄셈 연산에는 cv2.subtract(image_one, image_two) 메서드를 사용합니다. 여기서도 덧셈 예제에서 사용한 것과 동일한 이미지를 활용해 보겠습니다.

예제 코드

# cv2 모듈 임포트
import cv2
# 이미지를 읽어 변수에 저장
image_one = cv2.imread('_one.jpg')
image_two = cv2.imread('_two.jpg')
# 두 이미지 빼기
result_image = cv2.subtract(image_one, image_two)
# 최종 이미지 화면에 출력
cv2.imshow('Final Image', result_image)
# 메모리 해제
if cv2.waitKey(0) & 0xff == 27:
    cv2.destroyAllWindows()

실행 결과

결과 이미지

Python OpenCV로 배우는 이미지 산술 연산: 덧셈과 뺄셈 완벽 가이드

마무리

지금까지 Python OpenCV를 활용해 이미지 덧셈과 뺄셈 연산을 수행하는 방법을 알아보았습니다. 참고로 OpenCV의 산술 연산은 일반적인 NumPy 배열 연산과 달리 포화(saturation) 연산을 적용합니다. 즉, 덧셈 결과가 255를 초과하지 않고, 뺄셈 결과가 0 미만으로 내려가지 않으므로 값 오버플로우를 걱정할 필요가 없습니다. 이 점을 기억해 두면 이미지 처리 시 유용하게 활용할 수 있습니다.
튜토리얼 내용에 대해 궁금한 점이 있다면 댓글로 남겨주세요.