본문 바로가기
SEO's Study/프로페셔널한 이야기

[OpenCV] Google Colab에서 cv패키지 사용하는법

by 신SEO세오 2022. 5. 23.
반응형

간단히 코드를 돌릴 때에면 colab을 자주 사용하는데 절대 적응이 되지않는 opencv.

항상 동일한 에러에 당황하는 나를 보면 기억력이 안좋은건지.. 습관이 무서운건지 모르겠을 정도다

 

<ERROR Message>

DisabledFunctionError: cv2.imshow() is disabled in Colab, because it causes Jupyter sessions
to crash; see https://github.com/jupyter/notebook/issues/3935.
As a substitution, consider using

또 같은 실수를 반복하지 않기위해 colab에서 이미지를 읽을 수 있는 방법에 대해 정리해보려고 한다

이유는 모르겠으나 colab은 cv2.imshow() 옵션이 비활성화 되어있기 때문에 위와 같은 에러를 빈번하게 볼 수 있다.

구글에서는 이 불편함을 해결하기 위해서인지 google.colab.patches라는 라이브러리를 자체적으로 생성했다 

 

<code>

import cv2
from google.colab.patches import cv2_imshow  # google colab 자체 개발 라이브러리

img_path = '/content/cute.jpg'  # 이미지 경로

img = cv2.imread(img_path)
cv2_imshow(img)

<결과>

 

그렇다면 귀여운 스티치를 만나 볼 수 있고, 출력 이외의 이미지 편집 옵션들도 모두 동일하게 사용할 수 있다

 

다만 이 과정은 colab에서 자체 생성한 라이브러리로 상용화 서비스에서는 활용하기가 어려울 것 같다는 생각이 들었다
(정확한 내용은 아니지만 이름에도 colab이 들어가 colab에 특화되었다고 생각했다)

 

그래서 조금 더 상용화 되어있는 PIL + matplotlib을 활용해 이미지를 출력해보고 포스팅을 끝내려고한다

 

<code>

import matplotlib.pyplot as plt  #  다양한 데이터를 도식화 할 수 있는 라이브러리
from PIL import Image  #파이썬 인터프리터에 다양한 이미지 파일 형식을 지원하고 강력한 이미지 처리와 그래픽 기능을 제공

img = Image.open('/content/cute2.png')
plt.imshow(img)

 

<결과>

 

다른 귀여운 스티치를 데리고와봤다

도식화하는 양식으로 좌표가 생성되었지만, plt.imshow의 기본기능으로 3줄의 코드를 추가해 삭제할 수 있다. 

frm = plt.gca()

frm.axes.get_xaxis().set_visible(False)
frm.axes.get_yaxis().set_visible(False)

 

그렇지만 나는 귀찮기도하고 단순히 이미지 편집의 결과를 확인하는 거 뿐이니 이렇게 보겠다

 

 

 

 

 

반응형

댓글