最終更新: mikk_ni3_92 2008年10月31日(金) 14:34:18履歴
現在地 >> メニュー >> サンプルコード::OpenCV >> OpenCV::エピポーラ線
F行列があれば、エピポーラ線を計算する事ができる。
使う関数は「cvComputeCorrespondEpilines()」関数
■void cvComputeCorrespondEpilines( CvMat* points, int pointImageID, CvMat* fmatrix, CvMat* lines );
―第1引数―
別の画像で計算したい点指定。
―第2引数―
「1」→1枚目から2枚目への対応
「2」→2枚目から1枚目への対応
―第3引数―
F行列を指定。
―第4引数―
エピポーラ線の係数を格納する。
エピポーラ線は
[例]:1枚目から2枚目への対応
サンプルコード
F行列があれば、エピポーラ線を計算する事ができる。
使う関数は「cvComputeCorrespondEpilines()」関数
■void cvComputeCorrespondEpilines( CvMat* points, int pointImageID, CvMat* fmatrix, CvMat* lines );
―第1引数―
別の画像で計算したい点指定。
―第2引数―
「1」→1枚目から2枚目への対応
「2」→2枚目から1枚目への対応
―第3引数―
F行列を指定。
―第4引数―
エピポーラ線の係数を格納する。
エピポーラ線は
a*x + b*y + c = 0で表現され、関数によって(a,b,c)を求める事ができる。
[例]:1枚目から2枚目への対応
CvMat *firstM = cvCreateMat(12,2,CV_64FC1); //1枚目の対応点 CvMat *secondM = cvCreateMat(12,2,CV_64FC1);//2枚目の対応点 ... ... CvMat *lines = cvCreateMat(12,3,CV_64FC1); cvComputeCorrespondEpilines(firstM,1,FMat,lines); //エピポーラ線の計算
サンプルコード
- サンプル::エピポーラ線1
- サンプル::エピポーラ線2
- サンプル::エピポーラ線3(原点が左下、プログラムを整理したもの)