WebカメラでVTR調フィルタ

2008年のエントリー VTR調変換 AS3.0 の内容を動画でも試してみました。 ダビングや経年などで劣化したVTR映像のような効果を付加するものです。 2年前の記事では OpenCV の IplImage 構造体を模した独自クラスを作り、 そのクラスのメンバに画像データを入れて処理しています。 今回は対象が動画ということもあり、メインのロジック部分をコンパクトにしました。 なるべくキャッシュにヒットするように書いているつもりですが、 GCのSweep Phaseで荒らされると思いますので気休…

Flashで画像処理するときのコツ

注意) レンダリングの高速化とは別レイヤーの話になります。 去年の記事でAPIレベルの考察はしていますが、今回はもう少し踏み込んで考えてみます。 get/setVector() vs get/setPixels() その前に BitmapData.getVector() と BitmapData.getPixels() のシグネチャを再掲。 両APIともピクセルデータを一次元のコンテナに詰め込むメソッドです。 getPixels(rect:Rectangle):ByteArray ピクセルデータ…

Flashでステレオビジョン入門

Demo: Experiments in Stereo Vision (ByteArrayキャッシュ利用) 実は何年か前に試みたことがあるのですが、たしかFlash CS3とかで作っていて、 その時の.flaファイルが行方不明、、、諦めてリトライしようかと。 今度はちょっと真面目にFlex (Flex SDK 4)で作ってみます。 ステレオグラムを寄り目とかにしながら見て立体視するみたいな、 「人間ががんばる」話ではなく、あくまで機械で立体視をシミュレーションします。 ただ、相当デリケートな処理…

Javascriptでカラーヒストグラム

画像のカラーヒストグラムをJavascriptで。 jsdo.it:Color Histogram using Web Workers – jsdo.it サイト内:HTML5 Color Histogram using Web Workers Web Workers を利用しています。 Workerプロセスに画像データを渡し、Worker内部で各チャンネル毎にヒストグラムを計算して返却。 通常のWorkerでは、Workerインスタンスとバックグラウンドプロセスが1対1で対応してい…

HTML5でSymmetric Nearest Neighbor

久しぶりの投稿; Demo: HTML5 Image Processing (Symmetric Nearest Neighbor) (Firefox3.5とSafari4で動作確認しています) HTML5でConvolutionFilterに続いて、簡単な画像処理を試してみます。 以前、ActionScriptで書いたSymmetric Nearest NeighborをJavaScriptで。 半径を大きくするとそれなりに絵画っぽくなってくれますが、やはり重いです; ・クライアント [cra…

HTML5でConvolutionFilter

HTML5のcanvasを使って簡単な画像処理をやってみます。 試してみたのは基本的な畳み込みフィルタ。 今回はAS3のConvolutionFilter風のインタフェースで作りました。 Demo: HTML5 Image Processing (Convolution Filter) 汎用的に作ろうとすると少し時間がかかりそうだったので、ひとまず畳み込みフィルタの部分だけ。 引数はAS3のものよりずっと少なく、matrix, divisor, bias の3つ。 matrixXやmatrixY…

OpenCV 2.0 – cv::Mat 行列演算

前回に引き続き、cv::Matクラスについて。 今回は行列演算に関する機能を使います。 上記のシンプルな連立一次方程式を cv::Mat クラスの機能を使って解いてみます。

? 出力結果

CvMatでは cvmInvert -> cvmMul と関数を順番に呼び出さないといけないところを、 cv::Matなら matX = matA.inv()*matB のように直…

OpenCV 2.0 – cv::Mat

OpenCV C++ matrix class 前回、OpenCV 2.0 – cv::Ptr ではスマートポインタである cv::Ptr について調べました。 今回はOpenCV 2.0のC++インタフェースの中でも重要な役割を持つ cv::Mat クラスについて。 このクラスは従来の IplImage 及び CvMat に取って代わるものになっていますが、 かなり大きいクラスなので何回かに分けて調べていきたいと思います。 cv::Mat はマルチチャンネルとROI(Region …