FITC Tokyo 2009 参加レポート

FITC Tokyo 2009 に参加してきました。 どのセッションも聞き応えがあり良い刺激になりました。 個人的にはNVIDIAさんの話を興味深く聞かせていただきました。 ランチをゆっくり食べ過ぎたせいで途中からしか聞けませんでしたが、内容としては Tegra用に最適化されたFlash Playerでは、H.264ビデオの再生などを行うときにTegraのアクセラレーション機能を利用でき、しかも省電力! OpenGL ES関連 (企業ブースではARのシューティングゲームを展示してた) OpenC…

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 …

OpenCV 2.0 – cv::Ptr

A template class for smart reference-counting pointers OpenCV 2.0では cv::Ptr という参照カウント方式のスマートポインタが用意されています。 これは Boost C++ Library の shared_ptr と同様のもので大変便利です。 参考:参照カウント – Wikipedia 一時的にcv::Ptrクラスのrefcountというメンバをprotectedからpublicに変更して挙動を見てみます。 (cx…

OpenCV 2.0を試してみた

この連休中にちょっとOpenCV 2.0で遊んでいました。 ライブラリの規模がかなり大きくなったのでソースを読むのも大変です; IplImage や CvMat は 新しいC++インタフェースでは cv::Mat に取って代わります。 (1.1preで追加されたWImageクラスの立場は? 関連:cv::WImage ? OpenCV 1.1) また、メモリ管理が賢くなっているので、後始末は各クラスのデストラクタに任せておきましょう。 boostのshared_ptrと同様のスマートポインタ(c…

Thriftでバイナリデータを扱う

Thriftでバイナリデータをやりとりする方法。 以前、FlexでXML-RPCを利用していた時は、確かbase64にエンコードして返していたと思うので、 Thriftでも同様にバイナリデータはbase64にエンコードして返すようにします。 Thriftのソースを漁っていると TBase64Utils とかいうのを見つけたのですが、 どうせboost必須なフレームワークなのでboostを使ってエンコードしてみます。 インタフェースとして、 ・サービス名を Test ・プロシージャ名を retur…

memcached: Slab Allocator

僕の務める会社でも memcached はほとんどのサービスで利用されています。 今は業務も少ないので、ひまつぶしにmemcachedのコードを読んでいました。 Slab Allocatorの部分に興味を持ったので、それについてわかったことのメモ。 以下のサイトで事前知識を付けてからコードを読みました。 memcachedを知り尽くす:第2回 memcachedのメモリストレージを理解する Slab Allocator : メモリの確保・管理を行うメカニズム  ・メモリアロケーションでオーバーヘ…

Thrift + OpenCV

Thriftを利用してOpenCVの関数をスクリプトから呼んでみます。 といってもRPCで繋げるだけで特別なことをする必要はありません。 ここでは、画像の各チャンネルの平均値と標準偏差を求めてみます。 サーバ側でOpenCVの cvAvgSvd() を利用すればOK。 まず、最初にRPCのインタフェースをThrift IDLに書きます。 ここでは、平均と標準偏差を求める関数を2つ作ることにしました。 各チャンネルの値が欲しいので戻り値は list<double> に、 引数は画像ファ…