15
16

More than 3 years have passed since last update.

OpenCVを用いて、Jupyter Notebook上で画像を表示させたい(mac)

Last updated at Posted at 2019-11-17

python初心者のための画像分析

失敗した内容、改善出来た内容などを、初心者の観点から記録します。

今回は、Anacondaから立ち上げたJupyter Notebook上で
OpenCVを用いて画像を表示する際に、エラーになった内容。(下記画像は、成功例)
jupyternotebook_shimarisu.png

また、画質が表示された時、解像度が落ちていたので、改善方法を模索しています。
(どなたか分かる方がいらっしゃいましたら、ご教授下さい。。。)

条件

・macOS 使用
・Anaconda上のJupyter Notebookで表示させたい
・Python 3.7 を使用
・OpenCV 4.1.1 を使用
・matplotlib を使用
・画像(shimarisu.jpg)は、macのDesktop上のフォルダに格納
 /Desktop/detect_ai/data/shimarisu.jpg

OpenCV のインストール

Anacondaに、OpenCVのみがインストールされていなかったので
https://rightcode.co.jp/blog/information-technology/opencv-jupyternotebook-face-recognition
を参考に試してみたのですが、なぜか私は出来なかったです。
OpenCV を選択して、インストールを開始するための Apply ボタンは押せますが
インストール完了後の Apply ボタンが押せません。

なので、ターミナルに $ pip install opencv-python を入力して実行。
スクリーンショット 2019-11-17 23.46.58.png
黄色の文字で、WARNINGと表示されていますが、
"Successfully installed opencv-python-4.1.1.26" となっているので
インストールは成功かと思われます。

OpenCVを用いて画像を表示

Jupyter Notebook上で画像を表示させます。
今回は、シマリスの画像。

ソースコード

こちらを参考にさせて頂きました。
https://teratail.com/questions/169009

opencv.ipynb
import matplotlib.pyplot as plt
import numpy as np
import cv2

# インライン表示
%matplotlib inline

#画像(shimarisu.jpg)の読み込み
img = cv2.imread("shimarisu.jpg")

#画像の表示
plt.imshow(cv2.cvtColor(img, cv2.COLOR_BGR2RGB)) # OpenCV は色がGBR順なのでRGB順に並べ替える
plt.show()

しかし、以下のようなエラーが表示されてしましました。

opencv.ipynb
error                                     Traceback (most recent call last)
<ipython-input-33-7c8a2c33eec7> in <module>
     10 
     11 #画像の表示
---> 12 plt.imshow(cv2.cvtColor(img, cv2.COLOR_BGR2RGB)) # OpenCV は色がGBR順なのでRGB順に並べ替える
     13 plt.show()

error: OpenCV(4.1.1) /Users/travis/build/skvark/opencv-python/opencv/modules/imgproc/src/color.cpp:182: error: (-215:Assertion failed) !_src.empty() in function 'cvtColor'

◆原因を調べたら、いま立ちあがっているpythonファイルの置き場所(Anaconda上)と、
表示させたい画像(shimarisu.jpg)の置き場所(Desktop上)が違うとの事。
https://ja.stackoverflow.com/questions/49260/python3-6-6%E3%81%AB%E3%81%A6cv2%E3%82%A8%E3%83%A9%E3%83%BC%E3%81%8C%E7%99%BA%E7%94%9F%E3%81%97%E3%81%BE%E3%81%99

表示させたい画像(shimarisu.jpg)は、macのDesktop上のフォルダに格納していました。
/Desktop/detect_ai/data/shimarisu.jpg

試したこと

1枚目画像の5行目、画像(shimarisu.jpg)の読み込み部分にて

img = cv2.imread("shimarisu.jpg")を
img = cv2.imread("/Users/name/Desktop/detect_ai/data/shimarisu.jpg")

に置き換えたら、画像が表示が出来ました!

注意すべきポイント

立ちあがっているpythonファイルの場所と、画像の格納場所の階層を揃える必要がある。
「macのDesktop上のフォルダに、画像(shimarisu.jpg)を格納しているんだよ」の記載が必要。
今回の場合、
/Users/(ターミナルに表示される名前)/Desktop/detect_ai/data/shimarisu.jpg

(ターミナルに表示される名前)は人によって違う。
以下画像は、例として "name" と記載しているだけなので、随時変更して下さい。

jupyternotebook_shimarisu.png

問題点

ただ、画質の解像度が落ちて表示されてしまうので、元画像の解像度を保ったまま、
画像を表示することは出来ないかは、現在検証中です。(進展あったら更新します)

その他の参考サイト

・OpenCV で画像を表示させるための、ソースコード
http://peaceandhilightandpython.hatenablog.com/entry/2015/12/23/214840
http://rasp.hateblo.jp/entry/2016/01/22/201534

15
16
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
15
16