[스터디노트] OpenCV - 영상 출력(Matplotlib)

Hwan·2024년 2월 5일

OpenCV

목록 보기
5/15

Matplotlib을 이용한 영상 출력

(1) Matplotlib 라이브러리

Matplotlib 특징

  • 함수 그래프, 차트, 히스토그램 등의 다양한 그리기 기능을 제공하는 Python 패키기
  • OpenCV를 사용하기 위해 반드시 설치해야 하는 라이브러리는 아니지만 numpy.ndarray 영상 데이터를 다양한 형태로 출력할 때 사용 가능
  • 특히 주피터 노트북 환경에서 영상을 웹브라우저 안에 출력할 때 유용

Matplotlib 설치

pip install matplotlib

(2) Matplotlib으로 영상 출력하기

컬러 영상 출력

  • OpenCV에서 불러온 컬러 영상 데이터는 BGR 순서이지만, Matplotlib는 영상 데이터의 색상 순서가 RGB 순서
  • 그러므로 cv2.cvtColor() 함수로 색상 순서 변경해야 함
img = cv2.imread('cat.bmp')
plt.imshow(cv2.cvtColor(img, cv2.COLOR_BGR2RGB))
plt.show()

그레이스케일 영상 출력

  • plt.imshow()에서 컬러맵을 cmap='gray' 으로 지정해야 함
img = cv2.imread('cat.bmp', cv2.IMREAD_GRAYSCALE)
plt.imshow(img, cmap='gray')
plt.show()

하나의 창에 여러 개 영상 출력

  • plt.subplot() 이용
import matplotlib.pyplot as plt
import cv2

# 컬러 영상 출력
imgBGR = cv2.imread('cat.bmp')
imgRGB = cv2.cvtColor(imgBGR, cv2.COLOR_BGR2RGB)

# 그레이스케일 영상 출력
imgGray = cv2.imread('cat.bmp', cv2.IMREAD_GRAYSCALE)

# 가로로 이어지게
plt.subplot(121), plt.axis('off'), plt.imshow(imgRGB)
plt.subplot(122), plt.axis('off'), plt.imshow(imgGray, cmap='gray')
plt.show()

# 세로로 이어지게
plt.subplot(211), plt.axis('off'), plt.imshow(imgRGB)
plt.subplot(212), plt.axis('off'), plt.imshow(imgGray, cmap='gray')
plt.show()
profile
Hi.

0개의 댓글