SIFT検出器に基づく特徴点検出概要 [OpenCV]
画像内の強いコーナーを検出します。
◆画像処理効果
処理前
処理後
以下のコードを使うと「stack overflow」で停止するので注意が必要です。原因究明はこの処理を使う必要が発生したときに行う。
以下に制作したSURF検出器による特徴点検出部のソースを示す。
Detectors.cpp
SIFTはノンフリー版なので、この関数を使用するには以下の2点を追加する必要があります。
1.マクロとヘッダーの追加
2.main関数の最初にcv::initModule_nonfree関数を追加
参考サイト
- http://physics.nyu.edu/grierlab/manuals/opencv/classcv_1_1SiftFeatureDetector.html
- http://opencv.jp/opencv-2svn/cpp/features2d_common_interfaces_of_feature_detectors.html#siftfeaturedetector
- http://opencv.jp/cookbook/opencv_img.html#id32
ROIを利用した画像の部分処理概要 [OpenCV]
ROIとは: 「画像に対して ROI(Region Of Interest)を設定すると,その部分画像が,画像全体と同一に扱われる. つまり,部分画像に対して処理を行う場合,それが部分画像であることを考慮する必要なく扱うことができる. ただし,処理結果として座標や領域を得て,それを再び画像全体に戻す処理 (例えば,画像全体に対して描画するなど)を行う場合は,座標にオフセット (ROIの位置,幅など)を加えるなどの追加処理が必要なので注意すること.」
ROI(Region Of Interest)を利用して部分処理を行う。今回は4分割しそれぞれを回転させた。
◆画像処理効果
処理前
処理後
以下に制作したTilingクラスのソースを示す。
Tiling.h
Tiling.cpp
ソースコード
参考サイト
- http://opencv.jp/sample/transforms_and_permutations.html#repeat
- http://opencv.jp/opencv2-x-samples/affine_with_parameter
- http://www.eml.ele.cst.nihon-u.ac.jp/~momma/wiki/wiki.cgi/OpenCV/ROI%E3%81%AE%E4%BD%BF%E3%81%84%E6%96%B9.html
SimpleBlob検出器に基づく特徴点検出概要 [OpenCV]
- 適応的閾値処理を行い,入力画像を二値化します.その際に,minThreasholdからmaxThresholdまで,thresholdStepステップで変化させた複数の閾値を利用します.
- 各二値画像から,findContours()を用いて連結成分を抽出し,その中心を求めます.
- 複数の二値画像の中心点を座標でグループ化します.近い中心同士は1つのblobを形成し,これは minDistBetweenBlobsパラメータで制御されます.
- グループの最終的な中心と半径を推定し,それをキーポイントの位置とサイズとして返します.
◆画像処理効果
処理前
処理後
以下に制作したSimpleBlobアダプタによる特徴点検出部のソースを示す。
Detectors.cpp
参考サイト
- http://www.ropencv.aduda.eu/doc/OpenCV/Cv/SimpleBlobDetector.html
- http://docs.opencv.org/modules/features2d/doc/common_interfaces_of_feature_detectors.html#simpleblobdetector
- http://opencv.jp/cookbook/opencv_img.html#id32
FAST検出器+Dynamicアダプタに基づく特徴点検出概要 [OpenCV]
特徴点検出において,ある決まった個数範囲の特徴点を求めたい場合に,この方法が役にたちます. 求めたい特徴点個数の 最小値 と 最大値 を指定すると,検出器のパラメータを変更しながら, 指定された 繰り返し数 範囲内で探索を行います.
◆画像処理効果
処理前
処理後
以下に制作したFAST検出器+Dynamicアダプタによる特徴点検出部のソースを示す。
Detectors.cpp
参考サイト
- http://opencv.jp/opencv-2.2/cpp/features2d_common_interfaces_of_feature_detectors.html#cv-dynamicadaptedfeaturedetector-dynamicadaptedfeaturedetector
- http://opencv.jp/opencv-2.2/cpp/features2d_common_interfaces_of_feature_detectors.html#dynamicadaptedfeaturedetector
- http://opencv.jp/cookbook/opencv_img.html#id32
日中韓 歴史大論争 [歴史]
FAST検出器+Pyramidアダプタに基づく特徴点検出概要 [OpenCV]
入力画像からガウシアンピラミッドを作成し,各レベルにおいて特徴点を検出します. 特徴点のスケールを指定できない検出器において役立ちます.
◆画像処理効果
処理前
処理後
以下に制作したFAST検出器+Pyramidアダプタによる特徴点検出部のソースを示す。
Detectors.cpp
参考サイト
- http://physics.nyu.edu/grierlab/manuals/opencv/classcv_1_1PyramidAdaptedFeatureDetector.html
- http://opencv.jp/opencv-2.2/cpp/features2d_common_interfaces_of_feature_detectors.html#id12
- http://opencv.jp/cookbook/opencv_img.html#id32
FAST検出器+Gridアダプタに基づく特徴点検出概要 [OpenCV]
入力画像をグリッド状に分割し,その中で特徴点を検出します.
◆画像処理効果
処理前
処理後
以下に制作したFAST検出器+Gridアダプタによる特徴点検出部のソースを示す。
Detectors.cpp
参考サイト
- http://physics.nyu.edu/grierlab/manuals/opencv/classcv_1_1GridAdaptedFeatureDetector.html
- http://opencv.jp/opencv-2.2/cpp/features2d_common_interfaces_of_feature_detectors.html#id10
- http://opencv.jp/cookbook/opencv_img.html#id32
ORB検出器に基づく特徴点検出概要 [OpenCV]
画像内の強いコーナーを検出します。
◆画像処理効果
処理前
処理後
以下に制作したORB検出器による特徴点検出部のソースを示す。
Detectors.cpp
参考サイト
- http://www.opencv.org.cn/opencvdoc/2.3.1/html/modules/features2d/doc/common_interfaces_of_feature_detectors.html#orbfeaturedetector
- http://opencv.jp/cookbook/opencv_img.html#id32
MSER検出器に基づく特徴点検出概要 [OpenCV]
MSERは本来,領域抽出の手法ですが,OpenCVでは,検出された領域輪郭に楕円をフィッティングさせることで,サイズと方向を考慮する特徴点検出器として利用することもできます.
◆画像処理効果
処理前
処理後
以下に制作したMSER検出器による特徴点検出部のソースを示す。
Detectors.cpp
参考サイト
- http://physics.nyu.edu/grierlab/manuals/opencv/classcv_1_1MserFeatureDetector.html
- http://opencv.jp/opencv-2svn/cpp/features2d_common_interfaces_of_feature_detectors.html#mserfeaturedetector
- http://opencv.jp/cookbook/opencv_img.html#id32
SURF検出器に基づく特徴点検出概要 [OpenCV]
画像内の強いコーナーを検出します。
◆画像処理効果
処理前
処理後
以下に制作したSURF検出器による特徴点検出部のソースを示す。
Detectors.cpp
SURFはノンフリー版なので、この関数を使用するには以下の2点を追加する必要があります。
1.マクロとヘッダーの追加
2.main関数の最初にcv::initModule_nonfree関数を追加
参考サイト
- http://physics.nyu.edu/grierlab/manuals/opencv/classcv_1_1SurfFeatureDetector.html
- http://opencv.jp/opencv-2svn/cpp/features2d_common_interfaces_of_feature_detectors.html#surffeaturedetector
- http://opencv.jp/cookbook/opencv_img.html#id32