python初心者のための画像分析
失敗した内容、改善出来た内容などを、初心者の観点から記録します。
今回は、Anacondaから立ち上げたJupyter Notebook上で
OpenCVを用いて画像を表示する際に、エラーになった内容。(下記画像は、成功例)
また、画質が表示された時、解像度が落ちていたので、改善方法を模索しています。
(どなたか分かる方がいらっしゃいましたら、ご教授下さい。。。)
条件
・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
を入力して実行。
黄色の文字で、WARNINGと表示されていますが、
"Successfully installed opencv-python-4.1.1.26" となっているので
インストールは成功かと思われます。
OpenCVを用いて画像を表示
Jupyter Notebook上で画像を表示させます。
今回は、シマリスの画像。
ソースコード
こちらを参考にさせて頂きました。
https://teratail.com/questions/169009
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()
しかし、以下のようなエラーが表示されてしましました。
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" と記載しているだけなので、随時変更して下さい。
問題点
ただ、画質の解像度が落ちて表示されてしまうので、元画像の解像度を保ったまま、
画像を表示することは出来ないかは、現在検証中です。(進展あったら更新します)
その他の参考サイト
・OpenCV で画像を表示させるための、ソースコード
http://peaceandhilightandpython.hatenablog.com/entry/2015/12/23/214840
http://rasp.hateblo.jp/entry/2016/01/22/201534