見出し画像

Python初心者 無料で学習を極める(15)

こんにちわ。前回までに映画の特徴量を数点抽出しましたね。これからあの数字がどの様に使われるのか。考える必要がありますが、、、まずはどんどんやってみたいと思います。

本日は、ついに画像を触っていこうと思います。色々な考え方があるみたいですので、まずは、色々とやってみる の精神でいきます。
私が気に入っている画像の一つがこちら!!!!

画像1

「今から行くぞ!」っと人間に対する嫌いな感情をむき出しにするサン そして、同じ方向を見つめる山犬。静止画だけど、躍動感がすごい。。

では、この画像を元に、色々と抽出していきたいと思います!

準備1:画像処理の世界に対する前置き

pythonの世界で特徴量抽出の原理がOpenCVとして公開されているようです。そもそもOpenCVって・・・・・。

インテルが開発・公開したオープンソースのライブラリ

らしいです。その為、みんなが作成した技術とかが色々とあるそうです。

色々と考える方々がいて面白いですね。まさかのロゴが、カニッツァの定理をもじったロゴだとは!!ビックリしました。ここで、各自が作成したソースを共有し、一緒にレベルを上げていく感じなんでしょうね。何て素敵な取組★それでは特徴量抽出を始めましょう!

準備2:openCVを使える環境の構築

openCVをインストールする必要があります。その為、下記のコマンドを実行し、インストールしましょう。大きく二つの構成があるそうです。どちらを使かによって、インストール方法を変える必要があるみたいです。下記のサイトに内容が記載があります。

Main modules をインストールする場合は、こちら。

pip install opencv-python

Extra modules をインストールする場合は、こちら。

pip install opencv-contrib-python

私の場合、pipが古かったみたいで更新が必要となり、下記のコマンドを打ちました。そして、再インストール★

pip install --upgrade pip

ワーニング文章

ワーニング1

どちらのモジュールを使うべきか。は私にはわからない為、二つともまずはインストールしました。笑。
これで、環境は構築できましたね。早速してみましょう☆

特徴抽出1:エッジ検出(AKAZE)

openCVの中で、画像の特徴量抽出として、「AKAZE」が有名みたいですので、こちらを触ってみたいと思います。特徴量がカラーであると見やすいようですので、グレーにしてみたいと思います。

import cv2 as cv
# 画像を読み込み
img = cv.imread('original_photo/mononoke033.jpg')
#画像をグレーに変換
gray = cv.cvtColor(img, cv.COLOR_BGR2GRAY)
#画像を書込み
cv.imwrite('mod_photo/gray_mono033.jpg', gray)

画像3

すごい!!!!

3行で終わりました。そしてめっちゃ早かった。賢いですね・・・。
関数とかを調べる場合は、

help(cv.関数) 

で調べて下さい。そしたら、どの様に使うのか分かります。
実際にエッジを検出したポイントを表現してみましょう。

# AKAZEの宣言
akaze = cv.AKAZE_create()
#第1引数kp  :特徴点の座標等の情報
#第2引数des :特徴量記述子の情報
kp, des = akaze.detectAndCompute(gray, None)
#上で検出した特徴点を画像に着けた状態
key_img = cv.drawKeypoints(gray, kp, img)
#画像を書き込む
cv.imwrite('mod_photo/key_photo_mono033.jpg', key_img)

画像4

これまた、すごーい!!!

こんなにも簡単にできてしまうのですね。びっくりです。。。
本日は、この特徴量検出だけで時間を多くかかってしまいましたので、ここで終わりたいと思います。

次回は、

色々な特徴量検出をトライしてみましょう~(続編)

宜しくお願い致します。

よろしければサポート頂けると幸いです!子供へのパパ時間提供の御礼(お菓子)に活用させて頂きます☆