2009-01-01から1年間の記事一覧

マハラノビス距離

OpenCVでマハラノビス距離を計算するには double norm = cvMahalanobis(x, mean, covinv); を用いると簡単に計算することができます。 cvmSub(x, mean, tmp1); // x-m cvmCopy(tmp1, tmp2); cvmMul(class_covinv, tmp2, tmp2); // covinv * (x-m) double nor…

距離

距離というと一般的には直線距離(ユークリッド距離)のことを指していることが多いです。 しかし、ユークリッド距離の他にも多くの距離が存在します。そもそも距離とは が成り立つものを距離といいます。 さらに詳しく知りたい方はWikipediaなどを参照してく…

パターン認識における判別

パターン認識における前処理

HLACとフィッシャーの線形判別を用いてじゃんけんの手を判別してみた(2)

前回の続き。 フィッシャーの線形判別を用いて3次元にplotしてみました。射影後の次元はc-1=9-1=8次元なのですが、 固有値の大きい3つを選んで出力してみました。うーんきれいに分かれています。 これだけきれいに分かれていれば、 「各クラスの平均ベクト…

ユーザの入力を待つ

For文とかでデバッグする際にループを1回ずつ止めながら 出力を見たい時がある。その時は par(ask=TRUE) を使うと便利。 ユーザが何か入力するまで処理が止まってくれる。

HLACとフィッシャーの線形判別を用いてじゃんけんの手を判別してみた

じゃんけんの手(ぐー、ちょき、パー)をHLAC(25次元)で特徴抽出、 フィッシャーの線形判別で3-1=2次元の部分空間に射影。 その結果は以下の通り。 データ数はそれぞれの手が300枚。 赤:ぐー、緑:ちょき、青:パー「平均ベクトルとのユークリッド距離が最短…

地頭力を鍛える 問題解決に生かす「フェルミ推定」 まとめ

地頭力を鍛える。 頭がいい ・物知り 知識が豊富 What思考 ・機転がきく 対人感性が高い How思考 ・地頭がいい 思考能力が高い Why思考地頭力の全体像 ・知的好奇心(原動力) ・論理思考力(守り)、直観力(攻め) ・仮説思考力、フレームワーク思考力、抽象化思…

Visual Studioの設定

Visual StudioにOpenCVのヘッダファイル*.hとライブラリファイル*.libをリンクさせます. 「ツール(T)」→「オプション(O)」→「プロジェクト」→「VC++ディレクトリ」を選択します.「ディレクトリを表示するプロジェクト(S)」で「インクルードファイル」を選択…

はてなダイアリーで数式を使う

はてなダイアリーではminiTexを使うことができ、 これによって簡単に数式を表示できる。例 [tex: \frac{-b \pm \sqrt{b ^{2} -4ac} }{2a} ] このtexがあまり使えない人でも、 firefoxなどでGreasemonkeyを導入すれば BrEdiMa - Greasemonkey/はてなダイアリ…

M_PIはANSI標準ではない

円周率として定義されているM_PIはANSI標準ではない。なので、VC++で使うときは #define _USE_MATH_DEFINES #include <math.h> とする必要がある</math.h>

スタック領域を設定する

巨大な配列を静的に確保した場合などにおいて、 デフォルトのスタック領域のサイズをオーバーすること(StackOverflow)がある。その場合、配列を動的に確保するか、 スタック領域を大きくする必要がある。VC++において、スタック領域を大きくするには プロジ…

画像読み込み

rimageというパッケージをダウンロードしてくる。rimageの動作例 library(rimage) data(logo) op <- par(mfrow=c(2,2)) plot(logo, main="Original") plot(thresholding(logo, mode="fixed"), main="threshold=0.5") plot(thresholding(logo, mode="fixed", …

MoreEffectiveC++11-35

項目11 デストラクタから発生した例外を抑える 項目12 例外発生の仕方と引数渡しや仮想関数呼び出し地の違いを理解する 項目13 参照渡しで例外を受け取る 項目14 例外仕様を賢く用いる 項目15 例外処理のコストを理解する 項目16 80-20の規則を覚えておこう …

Podcastの連続再生

スマートプレイリストを作成する。 ファイル→新規スマートプレイリスト→ →設定する(ex.Podcastであるand再生回数0回etc) →OK

MoreEffectiveC++6-10

項目6:インクリメントとデクリメントの演算子で前置形式と後置形式を区別する 前置:参照を返す 後置:constオブジェクトを返す 項目7:&&, ||, ,をオーバーロードしない 短絡評価ができなくなる。 項目8:newとdeleteの別の意味を理解する new演算子:メモリを割…

Segmentation Faultの原因

Segmentation Faultの原因は主に不正なメモリへのアクセスです。 たとえば int array[10]; array[100] = 1; なんてことをしてしまうと起きてしまいます。 「こんなことやるわけねぇよ」なんて思っていても やってしまうものなのです。Segmentation Faultの起…

GCCでのコンパイルエラー

/usr/bin/ld: Undefined symbols: ___gxx_personality_v0 collect2: ld returned 1 exit status あるコンパイルをしたら上のようなエラーがでた。 オプションで -fno-exceptions をつけたら、エラーが消えた。

MoreEffectiveC++ 1-5

項目1:ポインタと参照の違い =ポインタ= ・nullが存在する。 なので、nullかどうかのチェックが必要になる。=参照= ・常にオブジェクトを参照する 項目2:C++スタイルのキャストを愛用する static_cast (式) const_cast (式) dynamic_cast (式) reinterpr…