2

左画像 右画像 ステレオ

左と右の画像で次のコードを実行すると、奇妙な結果が得られます。何が間違っているのか正確にはわかりません。まず、なぜトリミングされ、視差はすべて 1 色なのですか?

CvStereoBMState *BMState = cvCreateStereoBMState();
assert(BMState != 0);
BMState->preFilterSize=41;
BMState->preFilterCap=31;
BMState->SADWindowSize=41;
BMState->minDisparity=-64;
BMState->numberOfDisparities=128;
BMState->textureThreshold=10;
BMState->uniquenessRatio=5;

CvMat* disp = cvCreateMat(image_pyramid[0][0]->height, image_pyramid[0][0]->width, CV_16S);
CvMat* vdisp = cvCreateMat(image_pyramid[0][0]->height, image_pyramid[0][0]->width, CV_8U);

cvFindStereoCorrespondenceBM(image_pyramid[0][0], image_pyramid[1][0], disp, BMState);
cvNormalize(disp, vdisp, 0, 256, CV_MINMAX);
cvSaveImage("wowicantbelieveitsnotbutter.jpg", vdisp);
4

2 に答える 2

0

トリミングされた画像についてはよくわかりませんが、8ビット画像ではないため、0..255ではなく0..1の範囲に正規化する必要があると思います。

また、黒の値が実際には負であるため、トリミングされているように見える場合もあります。

于 2011-05-19T16:22:07.573 に答える
0

最小視差をゼロに変更してみてください。これはあなたの場合に役立つかもしれません(クロッピングによる問題)。私は同じ問題に直面しました。しかし、私はBMTunerのソリューションを持ってきました. 私はビデオを見てきました。ここにビデオを添付します。これは、トリミングの問題に役立つ可能性があります。

http://www.youtube.com/watch?feature=player_embedded&v=FX7AMktf24E

于 2012-05-29T11:15:49.757 に答える