ハイパス/ローパスフィルタ

前回の続き。 今回はフーリエ変換で得られた周波数スペクトルにハイパスフィルタ(HPF)/ローパスフィルタ(LPF)をかけます。 Flashだとサウンド関連でよく耳にするフィルタかもしれませんが、画像でも基本は同じです。 前回作ったクラスにフィルタ処理等を追加します。 ・1D/2D-FFT + HPF/LPF (追記 2008 12/19) バンドパスフィルタ(BPF)の処理を追加。 (追記 2009 2/20) 空間周波数フィルタのメソッドを少し修正。処理内容は変わってません。 [crayon-…

二次元離散フーリエ変換 – AS3.0

前回の続き。今回は画像に対するフーリエ変換です。 前回は一次元の話でしたが、画像の場合は平面なので水平/垂直方向の2つの周波数を持つことになります。 実際に画像に対して二次元フーリエ変換を行うには、  x軸方向に一次元フーリエ変換 → y軸方向に一次元フーリエ変換 という手順で処理します。 ここでは、前回作ったクラスを少し拡張します。 ・2D-FFT

入力画像を二次元フーリエ変換して振幅特性を輝度とするスペクトル画像を生成します。…

GPU

表題に”実時間”という文字を入れたいので高速化に励む日々。 そんな時 ”それGPUで” のお言葉。 良いアルゴリズムをひねり出す頭がないので機械に頼ります。 ただ、今度は別のことで頭をひねることになりそうですが; ついこのあいだGeForce 9600 GTに変えたので、デバイスクエリとバンド幅のテスト。 ・環境 Core2Quad Q9650 3.00GHz, DDR2-800 2GB, GeForce 9600 GT, PCI Express 2.0 [crayon-662c1dcd5824…

離散フーリエ変換 – AS3.0

“画像” に対する離散フーリエ変換について。 ”音” は扱わないので注意。 また、一度で書くには分量が多いので何回かに分けて書こうと思います。 ・離散フーリエ変換 (DFT) フーリエ変換についてはFlasherの間でも音関連でよく話題に出ているようなので理論的な説明は省きます。 画像の場合も音の周波数解析と基本は同じ。 ただ、音と違って画像は二次元なので空間周波数領域への変換を行うことになります。 (音の信号 x(t)は一次元、画像の信号 f(x,y) は二次元になる)…

ヒルベルトスキャン – AS3.0

Flashで画像のヒルベルトスキャン。 ヒルベルト曲線順に画素を走査します。 Hilbert Curve – Flex(AS3.0)で書いたスクリプトを画像に適用しました。 基本的にdrawPath()で線を引く代わりに、パスに沿って画像データをコピーするように変更しただけです。 ここではヒルベルトスキャンをFlashで視覚的に示します。

cv::WImage – OpenCV 1.1

new C++ template image classes contributed by Daniel Filip (Google inc.). ここでは紹介程度に。 OpenCV 1.1ではWImageというIplImageのラッパークラスが用意されています。 (‘W’はwrapperの意味で付けられたようです) このWImageクラスは以下のようにテンプレートクラスとして宣言されています。

WImag…

ステレオ画像処理

引き続きOpenCV 1.1preについて。 カメラキャリブレーション・ステレオ処理関連でいろいろ調べています。 ステレオカメラでの歪み補正用関数が増えてるのはありがたいんですが、 その関数の引数が15個とかあったりするので使うのがちょっと大変; あと、距離計測アルゴリズムのベースであるブロックマッチングとグラフカット。 これらは速度と精度のトレードオフになっています。 ChangeLogのブロックマッチング法に関する記述、  *processes the Tsukuba stereo pair…

1.1pre on Linux

以前オライリー本 – OpenCVでも書きましたが、OpenCV 1.1pre Windows版はビルドエラーが起きて上手く動かなかったのでLinux(Ubuntu 8.10)にインストールしました。こちらは特に問題ないようです。 (インストール方法はTech Noteに載せてあります) ChangeLogを見ていて特に気になったのは、カメラキャリブレーションやステレオ処理の部分。 あとは * new C++ template image classes contributed by…