SSブログ

SURF検出器に基づく特徴点検出概要 [OpenCV]

画像内の強いコーナーを検出します。

◆画像処理効果

処理前

image

処理後

image

以下に制作したSURF検出器による特徴点検出部のソースを示す。

Detectors.cpp

image

SURFはノンフリー版なので、この関数を使用するには以下の2点を追加する必要があります。

1.マクロとヘッダーの追加

image

2.main関数の最初にcv::initModule_nonfree関数を追加

image

 

参考サイト


Star検出器に基づく特徴点検出概要 [OpenCV]

画像内の強いコーナーを検出します。

◆画像処理効果

処理前

image

処理後

image

以下に制作したStar検出器による特徴点検出部のソースを示す。

Detectors.cpp

image

 

参考サイト


FAST検出器に基づく特徴点検出概要 [OpenCV]

画像内の強いコーナーを検出します。

◆画像処理効果

処理前

image

処理後

image

以下に制作したFAST検出器による特徴点検出部のソースを示す。

Detectors.cpp

image

 

参考サイト


Harris検出器に基づく特徴点検出概要 [OpenCV]

画像内の強いコーナーを検出します。

◆画像処理効果

処理前

image

処理後

image

以下に制作したHarris検出器による特徴点検出部のソースを示す。

Detectors.cpp

image

 

参考サイト


固有値に基づく特徴点検出概要 [OpenCV]

画像内の強いコーナーを検出します。

◆画像処理効果

処理前

image

処理後

image

以下に制作したDetectorsクラスのソースを示す。

Detectors.h

image

Detectors.cpp

image

image

 

参考サイト


画像のHistgramを得る方法概要 [OpenCV]

画像のヒストグラムを計算し描画します。

◆ヒストグラムを計算する画像

image

◆ヒストグラムの描画

image

以下に制作したHistgramクラスのソースを示す。

Histgram.h

image

Histgram.cpp

image

 

参考サイト


MatchTemplate による物体検出「複数検出」 [OpenCV]

前回、テンプレートマッチングの記事を書いたが、スコアが最大となる1個しか検出できなかった。そこで複数個検出できるように変更したので結果を表示する。

動作確認の環境により画面が暗くなってしまっているが、複数検出しているのわかる。

テンプレート画像

image

複数検出確認

image

以下に変更後の関数を示す。

MatchTemplate.cpp

void MatchTemplate::doVisions(int num=4, double score) 関数

num は検出個数、score は検出スコアを指定する。

image

ソースコード


MatchTemplate による物体検出概要 [OpenCV]

入力画像上で実画像のパッチ(テンプレート)をスライドさせ、以下に説明するマッチング手法を使ってマッチングする関数。

  1. 二乗差分マッチング手法(CV_TM_SQDIFF)

差分の二乗でマッチングする。

  1. 相関マッチング手法(CV_TM_CCORR)

テンプレートを乗算してマッチングする。

  1. 相関係数マッチング手法(CV_TM_CCOEFF)

平均値に比例したテンプレートを、その平均値に比例した画像に対してマッチングする。

◆画像処理効果

テンプレート画像

image

処理前

image

処理後

  • CV_TM_SQDIFF

image

  • CV_TM_SQDIFF_NORMED

image

  • CV_TM_CCORR

image

  • CV_TM_CCORR_NORMED

image

  • CV_TM_CCOEFF

image

  • CV_TM_CCOEFF_NORMED

image

 

以下に制作したMatchTemplateクラスのソースを示す。

MatchTemplate.h

image

MatchTemplate.cpp

image

ソースコード

 

参考サイト


AdaptiveThreshhold 適応型閾値概要 [OpenCV]

閾値のレベルがそれ自身変化する閾値処理。

この手法は、照明や反射による輝度勾配が存在し、輝度勾配に合わせて閾値を設定しないといけない場合等に役立つ。

◆画像処理効果

処理前

image

処理後

  • CV_THRESH_BINARY

CV_ADAPTIVE_THRESH_MEAN_C

image

CV_ADAPTIVE_THRESH_GAUSSIAN_C

image

 

  • CV_THRESH_BINARY_INV

CV_ADAPTIVE_THRESH_MEAN_C

image

CV_ADAPTIVE_THRESH_GAUSSIAN_C

image

 

以下に制作したAdaptiveThreshHoldクラスのソースを示す。

AdaptiveThreshHold.h

h

AdaptiveThreshHold.cpp

c

ソースコード

 

参考サイト


Threshhold 閾値概要 [OpenCV]

配列と閾値が与えられると、その配列のすべての要素に対して閾値が上か下かに応じて指定された処理が行われる。閾値のタイプは5種類あり、それぞれに対し大津アルゴリズムを組み合わせることができるので計10種類のタイプを利用できる。

◆画像処理効果

処理前

image

処理後

  • CV_THRESH_BINARY

image

  • CV_THRESH_BINARY_INV

image

  • CV_THRESH_TRUNC

image

  • CV_THRESH_TOZERO

image

  • CV_THRESH_TOZERO_INV

image

 

  • CV_THRESH_BINARY | CV_THRESH_OTSU

image

  • CV_THRESH_BINARY_INV | CV_THRESH_OTSU

image

  • CV_THRESH_TRUNC | CV_THRESH_OTSU

image

  • CV_THRESH_TOZERO | CV_THRESH_OTSU

image

  • CV_THRESH_TOZERO_INV | CV_THRESH_OTSU

image

 

以下に制作したThreshHoldクラスのソースを示す。

ThreshHold.h

image

ThreshHold.cpp

image

テキスト版へのリンク

 

参考サイト


この広告は前回の更新から一定期間経過したブログに表示されています。更新すると自動で解除されます。