Python3 OpenCV3で画像の特徴点を抽出
ちょっと苦労した。
[amazonjs asin="4839952965″ locale="JP" title="OpenCV 3 プログラミングブック"]
画像の特徴点とは
画像の特徴点とは、画像の角の部分であったり曲線の極大点であったりと、その画像内で際立った部分のこと。
以下の画像の赤い部分。
顔など様々な判定をしたいときなどに使われそうなのはなんとなく想像できる。
前提
元画像
ダンボーの画像(dambo.jpg)を使用した。
特徴点の抽出
OpenCV2(OpenCV3-alpha?)までは、FeatureDetector_createメソッドで特徴点の抽出が行えたが、OpenCV3では廃止されていた。
代わりに、FastFeatureDetector_createメソッドが実装されていたため、これを利用。
sourceディレクトリにcharacteristic.pyファイルを作成。
[python title="characteristic.pyの内容"]
# -*- coding: utf-8 -*-
import cv2
import numpy as np
if __name__ == '__main__’:
# ファイル読み込み
img_src = cv2.imread("./image/dambo.jpg")
img_keypoint = img_src
# キーポイントの検出
gftt = cv2.FastFeatureDetector_create()
keypoints = gftt.detect(img_src)
# キーポイントの数をターミナル上に表示
print(len(keypoints))
# 表示
img_keypoint = cv2.drawKeypoints(img_src, keypoints, img_keypoint)
cv2.imshow("SHOW KEYPOINTS IMAGE", img_keypoint)
cv2.waitKey(0)
cv2.destroyAllWindows()
[/python]
実行してみる。
[shell]
(opencv_python) $ python characteristic.py
[/shell]
できたー。
ディスカッション
コメント一覧
まだ、コメントがありません