Python/파이썬 OpenCV 공부

[파이썬 OpenCV] Matplotlib를 이용한 영상 출력

AI 꿈나무 2020. 9. 25. 11:15
반응형

Matplotlib를 이용한 영상 출력

 Matplotlib를 사용하여 영상 출력하는 방법을 알아보도록 하겠습니다.

 

 영상을 불러올 때는 cv2.imread() 함수를 이용합니다.

 cv2.imread() 함수로 불러온 영상의 색상정보는 BGR 순서이므로 이를 RGB 순서로 변경해야 합니다.

 따라서 cv2.cvtColor() 함수를 사용해야 합니다.

 

 또한 Matplotlib에서 그레이스케일 영상을 출력할 때 plt.imshow() 함수에서 컬러맵을 cmap='gray'로 지정해야 합니다.

 

 이제 코드를 보겠습니다.

 

1. 컬러 영상 출력

import matplotlib.pyplot as plt
import cv2

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

# cv2.imread는 BGR로 불러오므로 plt를 이용하려면 RGB로 바꿔줘야 함
imgRGB = cv2.cvtColor(imgBGR, cv2.COLOR_BGR2RGB)

plt.axis('off') # 창에있는 x축 y축 제거
plt.imshow(imgRGB)
plt.show()

 

 cv2.imread는 BGR로 불러오므로 cv2.cvtColor(imgBGR, cv2.COLOR_BGR2RGB)로 RGB로 색상정보를 변경해야 합니다.

 

 컬러 영상이 출력된 것을 확인할 수 있습니다.

 

2. 흑백 영상 출력

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

plt.axis('off')
plt.imshow(imgGray, cmap='gray') # cmap='gray'를 입력해주어야함
plt.show()

 

 여기서 주의할 점은 plt.imshow에서 cmap ='gray'를 입력해주어야 합니다.

 

 

 이처럼 그레이스케일 고양이 영상을 출력할 수 있습니다.

 

3. 두 개의 영상을 함께 출력하기

 이번에는 두 개의 영상을 함께 출력하는 것을 보겠습니다.

 

plt.subplot(121), plt.axis('off'), plt.imshow(imgRGB)
plt.subplot(122), plt.axis('off'), plt.imshow(imgGray, cmap='gray')
plt.show()

 

plt.sublot(121)의 의미는 1행 2열로 나눠서 1열의 위치에 사진출력 의미입니다.

 

 

 이처럼 두 개의 영상이 하나의 창에 출력된 것을 확인할 수 있습니다. 감사합니다.

 

반응형