こちらのページの関数をすべてラップしました。まだリリースはしてません。
http://opencv.jp/opencv-1.1.0/document/opencvref_cv_epipolar.html
cvFindStereoCorrespondenceBMとcvFindStereoCorrespondenceGCを試しに動かしてみました。先ほどのOpenCVリファレンスマニュアルのページと、こちらのサイトを参考にさせて頂きました。
http://rest-term.com/archives/1072/
コードはこちら。
// 入力画像の読み込み using (IplImage imgLeft = new IplImage("tsukuba_left.png", LoadMode.GrayScale)) using (IplImage imgRight = new IplImage("tsukuba_right.png", LoadMode.GrayScale)) { // 視差画像, 出力画像の領域を確保 using (IplImage dispBM = new IplImage(imgLeft.Size, BitDepth.S16, 1)) using (IplImage dispLeft = new IplImage(imgLeft.Size, BitDepth.S16, 1)) using (IplImage dispRight = new IplImage(imgLeft.Size, BitDepth.S16, 1)) using (IplImage dstBM = new IplImage(imgLeft.Size, BitDepth.U8, 1)) using (IplImage dstGC = new IplImage(imgLeft.Size, BitDepth.U8, 1)) { // 距離計測とスケーリング using (CvStereoBMState stateBM = new CvStereoBMState(StereoBMPreset.Basic, 16)) using (CvStereoGCState stateGC = new CvStereoGCState(16, 2)) { Cv.FindStereoCorrespondenceBM(imgLeft, imgRight, dispBM, stateBM); Cv.FindStereoCorrespondenceGC(imgLeft, imgRight, dispLeft, dispRight, stateGC, false); Cv.ConvertScale(dispBM, dstBM, 1); Cv.ConvertScale(dispLeft, dstGC, -16); using (CvWindow windowBM = new CvWindow("Stereo Correspondence BM", dstBM)) using (CvWindow windowGC = new CvWindow("Stereo Correspondence GC", dstGC)) { Cv.WaitKey(); } } } }
- 作者: 永田雅人
- 出版社/メーカー: カットシステム
- 発売日: 2013/01
- メディア: 単行本
- この商品を含むブログ (3件) を見る