FAST検出器に基づく特徴点検出概要 [OpenCV]
画像内の強いコーナーを検出します。
◆画像処理効果
処理前
処理後
以下に制作したFAST検出器による特徴点検出部のソースを示す。
Detectors.cpp
参考サイト
- http://physics.nyu.edu/grierlab/manuals/opencv/classcv_1_1FastFeatureDetector.html
- http://opencv.jp/opencv-2svn/cpp/features2d_common_interfaces_of_feature_detectors.html#fastfeaturedetector
- http://opencv.jp/cookbook/opencv_img.html#id32
Harris検出器に基づく特徴点検出概要 [OpenCV]
画像内の強いコーナーを検出します。
◆画像処理効果
処理前
処理後
以下に制作したHarris検出器による特徴点検出部のソースを示す。
Detectors.cpp
参考サイト
- http://opencv.jp/opencv-2svn/cpp/feature_detection.html#cv-goodfeaturestotrack
- http://opencv.jp/opencv-2svn/cpp/features2d_common_interfaces_of_feature_detectors.html#goodfeaturestotrackdetector
- http://opencv.jp/cookbook/opencv_img.html#id32
固有値に基づく特徴点検出概要 [OpenCV]
画像内の強いコーナーを検出します。
◆画像処理効果
処理前
処理後
以下に制作したDetectorsクラスのソースを示す。
Detectors.h
Detectors.cpp
参考サイト
- http://opencv.jp/opencv-2svn/cpp/feature_detection.html#cv-goodfeaturestotrack
- http://opencv.jp/opencv-2svn/cpp/features2d_common_interfaces_of_feature_detectors.html#goodfeaturestotrackdetector
- http://opencv.jp/cookbook/opencv_img.html#id32
画像のHistgramを得る方法概要 [OpenCV]
画像のヒストグラムを計算し描画します。
◆ヒストグラムを計算する画像
◆ヒストグラムの描画
以下に制作したHistgramクラスのソースを示す。
Histgram.h
Histgram.cpp
参考サイト
- http://opencv.jp/opencv-2svn/cpp/histograms.html
- http://book.mynavi.jp/support/pc/opencv2/c3/opencv_img.html
MatchTemplate による物体検出「複数検出」 [OpenCV]
前回、テンプレートマッチングの記事を書いたが、スコアが最大となる1個しか検出できなかった。そこで複数個検出できるように変更したので結果を表示する。
動作確認の環境により画面が暗くなってしまっているが、複数検出しているのわかる。
テンプレート画像
複数検出確認
以下に変更後の関数を示す。
MatchTemplate.cpp
void MatchTemplate::doVisions(int num=4, double score) 関数
num は検出個数、score は検出スコアを指定する。
「キーチェーンパスワード」に関するトラブル [Mac]
ある日、自分のMacBook Airを立ち上げると、見慣れないダイアログが出てきた。そこにはキーチェーンのパスワード入力を求める表示が!そこでログインパスワードを入力したがNG、その他思いつく限りのパスワードを入力したがどれもNG。原因を調べようとネットに繋ごうとしても、Chrome用のキーチェーンパスワード入力を求められ、これもまたどのパスワードもNGとなり先に進めない。他のPCからネットにつなぎ調べたところ、キーチェーンパスワードをリセットすれば良いとのこと。以下の手順で実施してみた。
◆キーチェーンパスワードのリセット方法
① 「Finder」メニューから「移動」、「ユーティリティ」を選択する。
② 次に「キーチェーンアクセス」を起動し、キーチェーンアクセスのメニューから「環境設定」を選択する。
③ 環境設定ダイアログから「自分のデフォルトキーチェーンをリセット」ボタンを押しすと、「キーチェーンパスワードの設定」ダイアログが現れる。ここで新しいキーチェーンパスワードを設定後、MacBook Airを再起動する。
通常これで復旧できるらしいが自分のMacBook Airでは改善しない。再びキーチェーンパスワードを入力するダイアログのオンパレード。その他Web上にあるGUIメニューから出来る対応策をいろいろ試したが結局すべてNG。直接キーチェーンアクセスに関係ある、ファイル操作をすることにした。
◆キーチェーンファイルの削除方法
① ライブラリフォルダの表示
ターミナルを起動し以下のコマンドを入力し「ライブラリ」フォルダを表示させる。
chflags nohidden ~/Library
これで、ホームに「ライブラリ」フォルダが現れる。
② キーチェーンフォルダー内には、何やらたくさんのファイルとフォルダがある、これら全てををBackup用のフォルダーに移動する。
③ MacBook Airを再起動すると、キーチェーンパスワードの入力を求められることが無くなりました。ちなみにこの状態から「キーチェーンフォルダー」内は以下の構成となっています。
以降、「キーチェーンパスワード」の入力を求められることはなくなりましたが、アマゾンに登録した情報の入力を求められました。今までになかったことなので、今回の影響かと思われます。
おそらく他の情報も無くなったと考えられますが、MacBook Airが使用できるようになったので良しとします。
MatchTemplate による物体検出概要 [OpenCV]
入力画像上で実画像のパッチ(テンプレート)をスライドさせ、以下に説明するマッチング手法を使ってマッチングする関数。
- 二乗差分マッチング手法(CV_TM_SQDIFF)
差分の二乗でマッチングする。
- 相関マッチング手法(CV_TM_CCORR)
テンプレートを乗算してマッチングする。
- 相関係数マッチング手法(CV_TM_CCOEFF)
平均値に比例したテンプレートを、その平均値に比例した画像に対してマッチングする。
◆画像処理効果
テンプレート画像
処理前
処理後
- CV_TM_SQDIFF
- CV_TM_SQDIFF_NORMED
- CV_TM_CCORR
- CV_TM_CCORR_NORMED
- CV_TM_CCOEFF
- CV_TM_CCOEFF_NORMED
以下に制作したMatchTemplateクラスのソースを示す。
MatchTemplate.h
MatchTemplate.cpp
参考サイト
AdaptiveThreshhold 適応型閾値概要 [OpenCV]
閾値のレベルがそれ自身変化する閾値処理。
この手法は、照明や反射による輝度勾配が存在し、輝度勾配に合わせて閾値を設定しないといけない場合等に役立つ。
◆画像処理効果
処理前
処理後
- CV_THRESH_BINARY
CV_ADAPTIVE_THRESH_MEAN_C
CV_ADAPTIVE_THRESH_GAUSSIAN_C
- CV_THRESH_BINARY_INV
CV_ADAPTIVE_THRESH_MEAN_C
CV_ADAPTIVE_THRESH_GAUSSIAN_C
以下に制作したAdaptiveThreshHoldクラスのソースを示す。
AdaptiveThreshHold.h
AdaptiveThreshHold.cpp
参考サイト
Delegateを使用したパラメータ、戻り値のあるマルチスレッド [VB]
VBでマルチスレッドを扱う方法はいくつかあるが、パラメータおよび戻り値を使うことのできるDelegateを使用する方法を今後多く使いそうなので、これの扱い方を残しておく。
’マルチスレッドに渡すFileOperationクラスはネットワーク越しに比較的大きめのCSVファイルを操作するクラスとなっている。これの内容についてはここでは割愛する。
Threshhold 閾値概要 [OpenCV]
配列と閾値が与えられると、その配列のすべての要素に対して閾値が上か下かに応じて指定された処理が行われる。閾値のタイプは5種類あり、それぞれに対し大津アルゴリズムを組み合わせることができるので計10種類のタイプを利用できる。
◆画像処理効果
処理前
処理後
- CV_THRESH_BINARY
- CV_THRESH_BINARY_INV
- CV_THRESH_TRUNC
- CV_THRESH_TOZERO
- CV_THRESH_TOZERO_INV
- CV_THRESH_BINARY | CV_THRESH_OTSU
- CV_THRESH_BINARY_INV | CV_THRESH_OTSU
- CV_THRESH_TRUNC | CV_THRESH_OTSU
- CV_THRESH_TOZERO | CV_THRESH_OTSU
- CV_THRESH_TOZERO_INV | CV_THRESH_OTSU
以下に制作したThreshHoldクラスのソースを示す。
ThreshHold.h
ThreshHold.cpp
参考サイト