OpenCV
Fedora 18 で、 opencv-devel-docs (2.4.3-3) を入れると、 サンプルが /usr/share/OpenCV/samples と /usr/share/opencv/samples に分かれてるんだけど、これはパッケージングのミスだろうか? ソースパッケージとか見た方がいいのかもしれないけど、時間な…
id:DOSEI:20130306:p1 の訂正記事。のつもりだったけど、まだ理解が不十分だったので以下の文章は治す予定。うのむな。 まとめ cv::Mat_ を関数の引数の型にしてはいけない。 理由 cv::Mat_ は、 cv::Mat の型を固定した薄いラッパーです。 Mat は任意の型を…
以前ここにあった記事は、見えなくしてあります。cv::Mat_::type() などは、 cv::DataType::type などを返すので、元々が何の型の Mat をラッピングしているかは調べられない…。
プロローグ よーしパパ、要素が 0 で初期化された行列つくっちゃうぞー cv::Mat A(150, 100, CV_32S, 0); A.at<int>(20,10) = 30; コンパイルも通ったし、バッチリだ! エピローグ セグフォー! 後日談 cv::Mat のコンストラクタはたくさんあり、そのなかには値で</int>…
古き良き cvSVD() と違って、 class SVD というものが導入されている。マニュアルにはなぜか class SVD の定義が載ってないので、 opencv2/core/core.hpp を見ると、 class SVD { public: SVD(); SVD(const Mat& src, int flags=0); SVD& operator()(const M…
http://opencv.willowgarage.com/wiki/OpenCV%20Change%20Logs 一般的な変更と改善 ライブラリの再構成: cxcore, cv, cvaux, highgui, ml がより小さなモジュールに分かれた。 opencv_core opencv_imgproc opencv_highgui opencv_ml opencv_features2d openc…
ppm で保存すると, plain になる。うーむ。しょうがないので、その後 convert -format ppm *.ppm とかで raw に変換。
OpenCV は、過去の互換性のために、古いバージョンの関数を cvcompat.h (cv.h で読み込まれる) で宣言している。しかし、このファイルのコメントに将来削除する可能性がある (They are obsolete and are likely to be removed in future.) とあるため、使わ…
11/6 ついにリリースされた。Fedora extras にはまだ来てない。 CVS にある ChangeLog の HEAD (最新版) は CVS Info for project opencvlibrary で、注目すべきは キャリブレーションサンプル calibrate.cpp が付いた 修正: Incorrect normalization in cvF…
おーっ、ついにベータが取れるのか…。 http://sourceforge.net/projects/opencvlibrary/ 以下、rc1 のニュース の和訳 OpenCV は初の安定リリースを目前としています。最新のベータ版から長い時間がかかりましたが、ライブラリに多くの新機能の追加や改良が…
以下の手順で RPM パッケージを作成。環境は Fedora Core 4. CVSで作った opencv ディレクトリを opencv-cvs20060510 にリネーム。 OpenCV 0.9.7 の opencv.spec をコピーしてくる(適当な対処法)。 このファイルの Copyright は古い、とエラーが出るので L…
0.9.7 のマニュアルでは 3チャンネルであるとかかれているが、ほんとは 3x3 の行列なら 2チャンネルでなければいけない。なお、2次元の場合は という変換をする。
CvPoint と行列との相性というか、インタフェースが悪すぎると思う。画像上の点 CvPoint p を何か透視変換してまた CvPoint q に戻すには、 CvMat *pp = cvCreateMat(1, 1, CV_32FC2); // 2チャンネルの1x1行列 CvMat *qq = cvCreateMat(1, 1, CV_32FC2); cv…
OpenCV のマニュアルの索引を見回しても、行列の積を求める関数が見当たらない。 cvMul() は要素同士の積だし…実は、 cvGEMM() という「一般化」された積を求める関数が用意されている。そこにその簡略化バージョンとして、 cvMatMulAdd() cvMatMul() という…
ウィンドウからマウスイベントを拾うためのコールバックの仕様が、 OpenCV 0.9.6(beta4) では CV_EXTERN_C_FUNCPTR( void (*CvMouseCallback )(int event, int x, int y, int flags) );だったが OpenCV 0.9.7(beta5) では CV_EXTERN_C_FUNCPTR( void (*CvMou…
与える画像はグレースケール(1チャンネル)でないと "Bad type of mask argument" という例外で止まる。Undocumented. cvLoadImage() で第2引数に 0 を。
http://www.engr.ucsb.edu/~mquinn/opencv/
通常のmakeでは正常に動かない(例:サンプルの delaunay )のは、どうやら最適化オプション -O3 のせいらしい。configure の設定をいじってもなんかうまくいかなかったので、 $ ./configure CXXFLAGS="-O1"としたらうまくいった。-O0 (最適化なし)でもい…
目的 0.9.6 0.9.7 チェスボードパターン検出 FindChessBoardCornerGuesses FindChessboardCorners 検出されたチェスボードパターン描画 - DrawChessboardCorners 内部パラメタ推定 CalibrateCamera[_64d] CalibrateCamera2 ゆがみ補正 UnDistortOnce, UnDist…
7/26 に beta 5a が出た。 主な変更点は以下の通り: カメラ・ビデオ関連 EMT64 環境対応 パフォーマンステスト機能 いくつかの関数追加(ハフ変換による円の抽出など) キャリブレーション関連の関数が「完全に」書き直され、APIが単純化し、ドキュメント化…
OpenCV におけるマウスイベント処理の使えなさ ウィンドウプロシージャ(コールバック)からデータを取得するときは、グローバル変数を使わざるを得ない。 ウィンドウIDが文字列なのだが、ウィンドウタイトル(キャプション)としても使われるので、メッセー…