SSブログ

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

ソースコード


「キーチェーンパスワード」に関するトラブル [Mac]

ある日、自分のMacBook Airを立ち上げると、見慣れないダイアログが出てきた。そこにはキーチェーンのパスワード入力を求める表示が!そこでログインパスワードを入力したがNG、その他思いつく限りのパスワードを入力したがどれもNG。原因を調べようとネットに繋ごうとしても、Chrome用のキーチェーンパスワード入力を求められ、これもまたどのパスワードもNGとなり先に進めない。他のPCからネットにつなぎ調べたところ、キーチェーンパスワードをリセットすれば良いとのこと。以下の手順で実施してみた。

◆キーチェーンパスワードのリセット方法

image

① 「Finder」メニューから「移動」、「ユーティリティ」を選択する。

② 次に「キーチェーンアクセス」を起動し、キーチェーンアクセスのメニューから「環境設定」を選択する。

③ 環境設定ダイアログから「自分のデフォルトキーチェーンをリセット」ボタンを押しすと、「キーチェーンパスワードの設定」ダイアログが現れる。ここで新しいキーチェーンパスワードを設定後、MacBook Airを再起動する。

通常これで復旧できるらしいが自分のMacBook Airでは改善しない。再びキーチェーンパスワードを入力するダイアログのオンパレード。その他Web上にあるGUIメニューから出来る対応策をいろいろ試したが結局すべてNG。直接キーチェーンアクセスに関係ある、ファイル操作をすることにした。

◆キーチェーンファイルの削除方法

① ライブラリフォルダの表示

ターミナルを起動し以下のコマンドを入力し「ライブラリ」フォルダを表示させる。

chflags nohidden ~/Library

これで、ホームに「ライブラリ」フォルダが現れる。

image

② キーチェーンフォルダー内には、何やらたくさんのファイルとフォルダがある、これら全てををBackup用のフォルダーに移動する。

image

③ MacBook Airを再起動すると、キーチェーンパスワードの入力を求められることが無くなりました。ちなみにこの状態から「キーチェーンフォルダー」内は以下の構成となっています。

image

以降、「キーチェーンパスワード」の入力を求められることはなくなりましたが、アマゾンに登録した情報の入力を求められました。今までになかったことなので、今回の影響かと思われます。

おそらく他の情報も無くなったと考えられますが、MacBook Airが使用できるようになったので良しとします。


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

ソースコード

 

参考サイト


Delegateを使用したパラメータ、戻り値のあるマルチスレッド [VB]

VBでマルチスレッドを扱う方法はいくつかあるが、パラメータおよび戻り値を使うことのできるDelegateを使用する方法を今後多く使いそうなので、これの扱い方を残しておく。

’マルチスレッドに渡すFileOperationクラスはネットワーク越しに比較的大きめのCSVファイルを操作するクラスとなっている。これの内容についてはここでは割愛する。

vb.png 

 

ソースコード


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

テキスト版へのリンク

 

参考サイト


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