[Python] cv2.imshow() is disabled in Colab, because it causes Jupyter sessionsの原因と対処法

2022年3月3日木曜日

Python

本記事では、Google Colaboratoryでcv2.imshow()を利用した際に発生するエラーの原因と対処法について紹介します。

アイキャッチ

エラー詳細

Google Colaboratory上でOpenCV2を利用する際、画像を表示したい場合があるかと思います。
その場合に下記のようにcv2.imreadを実行すると表題のエラーが発生します。

import cv2

# 画像をダウンロード
!wget https://www.pakutaso.com/shared/img/thumb/SAYA160312500I9A3721_TP_V4.jpg

# OpenCV2で画像を読み込み
cv_img = cv2.imread('SAYA160312500I9A3721_TP_V4.jpg')

# imshowで表示
cv2.imshow(cv_img) # ←ここでエラーが発生

エラー内容は以下の通りです。

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
from google.colab.patches import cv2_imshow

原因はエラーメッセージに書いてある通りですが、cv2.imshow()はJupyterセッションをクラッシュするため、Colab上では利用できないようです。

対処法

対処法は、これまたエラーメッセージに書いてある通りですが、Colabで提供されているワークアラウンド用パッチを使用します。
具体的には、cv2.imread()の代わりに、google.colab.patchesのcv2_imshow()を使用します。

import cv2
from google.colab.patches import cv2_imshow # パッチファイルインポート

# 画像をダウンロード
!wget https://www.pakutaso.com/shared/img/thumb/SAYA160312500I9A3721_TP_V4.jpg

# OpenCV2で画像を読み込み
cv_img = cv2.imread('SAYA160312500I9A3721_TP_V4.jpg')

# imshowで表示
#cv2.imshow(cv_img) # ←ここでエラーが発生
cv2_imshow(cv_img) # ←パッチを使用して表示

無事画像が表示されました。

画像表示結果

誰かのお役に立てば幸いです。

AIで副業ならココから!

まずは無料会員登録

プロフィール

メーカーで研究開発を行う現役エンジニア
組み込み機器開発や機会学習モデル開発に従事しています

本ブログでは最新AI技術を中心にソースコード付きでご紹介します


Twitter

カテゴリ

このブログを検索

ブログ アーカイブ

TeDokology