インストール
Windows+VC2008
Linux
AVIファイルが読み込めない場合
cvCreateFileCapture()がNULLを返す場合は, コーデックが入ってない可能性がある. この場合, エンコードされてない(全フレームを格納する)生データにすることで読み込むことができる場合がある. 以下,
FFmpegでの方法.
ffmpeg -i hogehoge.avi -vcodec rawvideo hogehoge.avi
Linuxでpngやjpegが読み込めないとき
使ってるディストリで用意されているlibpngのパッケージのバージョンが古くて, リポジトリから取ってきてビルドしたOpenCV使ったらpngが読めなかった(ちなみにリビジョンは4167). OpenCVにはlibpngとかのソースが付属してるので, そういうときはOPENCV_BUILD_3RDPARTY_LIBSっていう
CMake環境変数をTRUEにしてMakefileを構築してインストすると楽.
カメラキャリブレーション
F行列とE行列の推定
FindFundamentalMat()でF行列推定できるんだけど, ランクが2でない時がある. 推定したF行列を特異値分解して最小特異値を0とおいて再合成したものを使った方がいい(内部でやってくれればいいのに…).
ちなみに, cvCalibrateCamera2()で求めた内部行列とFindFundamentalMat()で求めてランク2にしたF行列でE行列計算してみても, 特異値2つが同じゃない.
線形解法じゃ限界があるのか, バグか. しらべてみないと.
最終更新:2010年12月29日 23:30