JavaScriptでPoisson Image Editingによる滑らかな画像合成

Poisson Image Editing はSIGGRAPH 2003で発表された画像合成手法の1つで、Poisson方程式の境界値問題を画像処理に応用しています。 ただ画像の一部を切り取って貼り付けるだけだと特に領域境界部分の継ぎ目が目立ってしまいますが(左画像)、Poisson Image Editingを用いると領域周辺の画素値から領域内側の画素値を推定して滑らかに合成することができます(右画像)。 僕が学生時代、VC++でこの手法を使った画像合成ソフトをゼミ仲間といっしょに作って遊んで…

ScalaでOpenCVを使って画像処理

OpenCV 2.4.4から正式にJava APIをAndroidプラットフォーム以外でも使えるようになりました。つまりJVM(Java Virtual Machine)上で動く言語ならどんな言語からでもOpenCVが使えるということですね。 * OpenCV now supports desktop Java 、ということで今回はJVM上で動作するScalaからOpenCVを使ってみます。 環境 * CentOS 5.8 (x86_64, 仮想2コア, 1GB RAM) * Scala 2.1…

OpenCV for Android入門 – カメラ編

ここ最近はAndroidアプリ開発の勉強をしています。今回はOpenCVでデバイスのカメラを利用した動画像処理を試してみました。 技術Wikiの方にもAndroid関連のメモを残しています。 * Android – Tech Note * OpenCV for Android – Tech Note Portions of this page are modifications based on work created and shared by Google and …

JavaScriptで宙玉(そらたま)写真を作る

前回のJavaScriptでHarrisオペレータによるコーナー検出に引き続きJavaScriptで画像処理を。今回は難しいことはせずにカジュアルな画像加工を楽しみます。 ちょっと昔に、宙玉(そらたま)写真というのが流行ったような気がするんですけど、画像処理的には簡単ですのでちょっと試してみました。 参考: 宙玉 – Google 検索 作成手順は以下の通り 1. 元画像を円周魚眼レンズ風に射影変換した画像を作る 2. 元画像にボックスフィルタを掛けて反転した画像を作る 3. 1,2…

JavaScriptでHarrisオペレータによるコーナー検出

ひさしぶりのブログ。 ブラウザの処理能力の進化を測るには個人的に画像処理が一番わかりやすいです。 今回は画像内にあるオブジェクトのコーナー(corner:頂点, エッジの交点)を検出をしてみます。コーナー検出に用いられる特徴点検出法はいくつか提案されていますが、今回はブラウザ上で実行することを考慮し計算量とメモリ使用量の観点からHarrisオペレータを採用します。 コーナー検出法についてはWikipediaを参考に。 コーナー検出法 – Wikipedia Harrisオペレータは微…

JavaScriptで2D-FFTによるハイパス/ローパスフィルタ

これまでにJavaScriptとHTML5 Canvas APIでいくつかの画像処理を試してきましたが、今回は二次元離散フーリエ変換(2D-DFT、実装上では2D-FFT)で得られた周波数スペクトルにハイパス/ローパスフィルタ(HPF/LPF)を適用します。 「フーリエ変換」は音声処理でよく耳にする単語かと思います。音声データをフーリエ変換してHTML5 Canvas上でビジュアライズするデモもたくさん公開されています(例: Visualizing an audio spectrum &#821…

ANEで画像処理

前回のエントリー、FlashDevelop + GCCでANE入門の続きになります。今回はANE(ActionScript Native Extensions)で画像処理を行う際のいくつかの注意点などをメモしていこうと思います。ANEの作成手順については前エントリーを参照してください。 ANEのC APIでは、ASのBitmapDataを扱う為の構造体 FREBitmapData というものが提供されています。

OpenCVでいう…

JavaScriptでステレオ画像処理

過去、OpenCVやFlashで簡単なステレオ画像処理を試してきましたが (ステレオ画像処理, Flashでステレオビジョン入門)、今回はJavaScriptとCanvas APIで同じものを作ってみます。 Demo: HTML5 Stereo Vision Source Code: cv/stereo_matching at master from wellflat/jslib – GitHub ここではKinectのように赤外線センサーはもちろん利用できないので、純粋な画像解析の…