구글 코랩이나, 주피터 노트북을 사용하시는 분들에서는 일부 Windows 함수를 사용할 수 없습니다.

그래서, 새창을 띄워서 이미지를 확인하는 작업을 할 수가 없습니다.

 

그러신 분들은 matplotlib를 이용하여 이미지를 확인할 수 있습니다.

import matplotlib.pyplot as plt
import cv2

우선 해당 모듈을 설치 및 불러와주시고 파일 업로드를 해줍니다.

주피터 노트북을 사용하시는 분들은 작업하시는 환경에 이미지 파일을 복사해서 사용하시고,

구글 코랩을 사용하시는 분들은

from google.colab import files
uploaded = files.upload()

명령어를 통해서 이미지 파일을 업로드해줍니다.

 

그리고 지난 포스팅에 소개해드렸던 것처럼, imread를 통해 파일을 불러옵니다.

img = cv2.imread('choco.jpg')
plt.imshow(img)

이렇게 실행을 해주면, 새창 없이 바로 결과물을 확인할 수 있습니다.

 

음... 근데 결과물을 확인해보니, 색상이 많이 이상하다는 것을 확인할 수 있습니다.

이러한 이유는, 우리가 기본적으로 IMREAD 함수로 컬러 사진을 불러올 때는 아닌 BGR 순서로 불러옵니다.

그러나 matplotlib은 기본적으로 RGB 순서로 컬러를 받아 들여옵니다.

 

그렇기 때문에, 우리는 BGR 순서를 RGB 형태로 바꿔 주어야 할 것입니다.

힘든 작업처럼 보이지만, cv2에서 제공하는 cvtColor함수를 사용하여 쉽게 BGR에서 RGB로 바꿔줄 수 있습니다.

img2 = cv2.cvtColor(img, cv2.COLOR_BGR2RGB)

반대로 RGB에서 BGR로 바꿔줄 수 있고요... (cv2.COLOR_RGB2BGR)

이렇게 변환한 파일을 출력해보면

img = cv2.imread('choco.jpg')
img2 = cv2.cvtColor(img, cv2.COLOR_BGR2RGB)
plt.imshow(img2)

색상이 돌아온 것을 확인할 수 있습니다.

 

추가적으로, matpltlib을 사용한다면 pyplot이 제공하는 함수들을 이용할 수 있습니다.

예로 들어, axis를 없애 주거나, 결과물에 여러 개를 표현한다거나...

plt.subplot(121), plt.axis('off'), plt.imshow(img)
plt.subplot(122), plt.axis('off'), plt.imshow(img2)

여기서 121의 의미는 1행 2열 1번째로 배치시기겠다이며, 122는 당연히 1행 2열 2번째로 배치시기겠다는 의미입니다.

또한, plt.axis('off')는 x축과 y축에 크기를 나타나는 크기 정보를 없애고 순수 이미지만을 보여주겠다는 의미입니다.

그럼 결과를 확인해보도록 하겠습니다.

 

이처럼 우리는 windows함수 없이도, 이미지를 확인할 수 있습니다. windows환경에서도 실행 가능하며 windows환경에서 사용하시는 분들은 편한 방법을 선택해서 사용하시면 됩니다.

반응형

+ Recent posts