1

ステレオ キャリブレーションを行ったところ、validPixROI1 と 2 (緑色の境界線) が得られました。今、StereoSGBM を使用したいのですが、(stereoRectify からの) キャリブレーションからの rois は同じサイズではありません。誰でもこれを解決する方法を知っていますか?

実際、私はこれをリンクしています:

Rect roiLeft(...);
Rect roiRight(...);

Mat cLeft(rLeft, roiLeft);
//Mat cRight(rRight, roiRight); // not same size...
Mat cRight(cRight, roiLeft);

stereoBM(cLeft,cRight, dst);

そのROIで画像をトリミングすると、画像の中間点は同じになりますか?

ここで動作します。

ここに画像の説明を入力

4

3 に答える 3

2

(クロップされていない) キャリブレーションされた画像で stereoBM を実行してみませんか? その後、それらの ROI を使用して、結果の無効なビットをマスクすることができます...

   stereoBM(rLeft,rRight, disp);
   //get intersection of both rois or use target image roi, if you know the target image
   cv::Rect visibleRoi = roiLeft & roiRight;
   cv::Mat cDisp(disp,visibleRoi);

これで、異なるサイズの入力や異なる中心などの問題はなくなりました。

乾杯

于 2014-06-13T17:53:25.253 に答える
1

ウィキによると

光軸と像面の交点の点R。この点は、主点または画像の中心と呼ばれます。

だから、センターは変わらないと思います。このサイトを参照してください。ここで例の 1 つでは、640x480 ピクセルのカメラの主点は 302.71656,242.33386 であり、主点と画像の中心が同じではないことを示しています。

于 2014-06-13T23:17:04.070 に答える