Python 実践 データ加工/可視化 100本ノック に挑戦 ノック61

Python 実践 データ加工/可視化 100本ノック」を購入したので、

一通りやっているところです。今日はノック61を行います。

資料は以下から入手できます。

Python実践 データ加工/可視化 100本ノック|サポート|秀和システム

 

ノック61 :画像ファイルを読み込んで表示してみよう

 

チャプター5のサンプルコードに用意されているsample.jpgを読み込んで表示します。

import cv2
img = cv2.imread('data/sample.jpg')
 

OpenCVをインストールしていないと以下のようなError となります。

ModuleNotFoundError: No module named 'cv2'

 

OpenCVをインストールします。

pip install opencv-python

 

sample画像を読み込みます。

 

import cv2
img = cv2.imread('data/sample.jpg')
 
cv2.imshow('image',img)
cv2.waitKey(0)
cv2.destroyAllWindows()

 

cv2.imreadで対象の画像を読み込みます。


cv2.imshowで画像を表示します。

第一引数はウィンドウの名前(何でもいいです)。

第二引数に読み込みたい画像を記述します。

cv2.waitKey(0)は何かしらのキーが押されるまで待ち続ける動作で、
キーが押されたら、cv2.destroyAllWindows()でウィンドウを消します。

 

実行してみましたが、画像のサイズが大きくぼやけて表示されたので、

cv2.resizeでリサイズしてみました。

import cv2
img = cv2.imread('data/sample.jpg')
img_resize = cv2.resize(img, (256, 256))
cv2.imshow('resize image',img_resize)
cv2.waitKey(0)
cv2.destroyAllWindows()

 

 

 

実行結果

resize image

 

 

Google Colaboratoryで実行することを想定しているので、

本では、Google Colaboratoryを使って表示する例になっています。

from google.colab.patches import cv2_show
import cv2

img = cv2.imread('data/sample.jpg')
cv2_imshow(img)

 

 

ちなみに、matplotlibで実行する場合は以下のようになります。

cmapでカラーマッピングをグレーにしてみました。

 

import cv2
from matplotlib import pyplot as plt

img = cv2.imread('data/sample.jpg',0)
plt.imshow(img, cmap = 'gray')
plt.show()

 

実行結果

nine gray

 

たてと横のメモリがじゃまなので、消してみました。

import cv2
from matplotlib import pyplot as plt

img = cv2.imread('data/sample.jpg',0)
plt.imshow(img, cmap = 'gray')
plt.xticks(), plt.yticks()
plt.show()

nine gray2

 

/* -----codeの行番号----- */