2

左图 右图 立体声

我用左右图像运行以下代码并得到奇怪的结果。我不确定我做错了什么。首先,为什么要裁剪它,为什么视差都是一种颜色?

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

尝试将最小差异更改为零,这可能对您的情况有所帮助(由于裁剪导致的问题)。我确实遇到了同样的问题。但是我带来了BMTuner的解决方案。我看过一个视频。在这里我附上视频,这可能会帮助您解决裁剪问题。

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

于 2012-05-29T11:15:49.757 回答
0

我不确定裁剪后的图像,但我认为您应该将其标准化为范围 0..1 而不是 0..255,因为它不是 8 位图像。

也可能它看起来被裁剪了,因为黑色值实际上是负数。

于 2011-05-19T16:22:07.573 回答