L / R对无法获得正确的立体声

时间:2011-03-14 03:25:43

标签: opencv computer-vision stereo-3d

LeftImage RightImage Stereo

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

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);

2 个答案:

答案 0 :(得分:0)

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

也许它看起来被裁剪,因为黑色值实际上是负面的。

答案 1 :(得分:0)

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

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