Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/opencv/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ OpenCV 2.4.3中的StereoBM给出了不确定的结果_C++_Opencv_Image Processing_Computer Vision_Stereo 3d - Fatal编程技术网

C++ OpenCV 2.4.3中的StereoBM给出了不确定的结果

C++ OpenCV 2.4.3中的StereoBM给出了不确定的结果,c++,opencv,image-processing,computer-vision,stereo-3d,C++,Opencv,Image Processing,Computer Vision,Stereo 3d,我正在使用StereoBM计算使用OpenCV 2.4.3的立体视差贴图,每次运行时,我似乎都会得到不同的视差贴图。视觉上不明显,但几个像素随机不同 我尝试将视差贴图保存到一个YML文件中,在使用WinMerge进行比较时,我注意到几个像素的值为-16,而另一次运行产生了视差值。这也很容易复制 这段代码显示了我正在做的事情: //初始化bm StereoBM-bm(StereoBM::BASIC_预置,128,7); bm.state->preFilterType=CV_STEREO_bmxs

我正在使用StereoBM计算使用OpenCV 2.4.3的立体视差贴图,每次运行时,我似乎都会得到不同的视差贴图。视觉上不明显,但几个像素随机不同

我尝试将视差贴图保存到一个YML文件中,在使用WinMerge进行比较时,我注意到几个像素的值为-16,而另一次运行产生了视差值。这也很容易复制

这段代码显示了我正在做的事情:


//初始化bm
StereoBM-bm(StereoBM::BASIC_预置,128,7); bm.state->preFilterType=CV_STEREO_bmxsobel
bm.state->preFilterCap=63
bm.state->sadWindowsSize=7
bm.state->minDisparity=0
bm.state->numberofdifferences=96
bm.state->textureThreshold=3
bm.state->uniquenessRatio=3
bm.state->windowsize=20
bm.state->scaperange=32
bm.state->disp12MaxDiff=1


//获取校正后的图像
videoOut[MASTER]=Mat(帧高、帧宽、CV_8UC3、静态_投射(帧宽度[MASTER])
videoOut[SLAVE]=Mat(帧高、帧宽、CV_8UC3、静态_投射(帧BUF[SLAVE])


//灰度转换
CVT颜色(视频输出[主控]、帧[主控]、CV_rgb2灰色)
CVT颜色(视频输出[从]、帧[从]、CV_RGB2GRAY)


//子样本
调整大小(帧[MASTER],帧[MASTER],cv::Size(),0.5,0.5,cv::INTER_LINEAR)
调整大小(帧[SLAVE],帧[SLAVE],cv::Size(),0.5,0.5,cv::INTER_LINEAR)


//立体计算
Mat disp=cv::Mat(帧[MASTER]。行,帧[MASTER]。列,cv_16S)
bm(帧[主]、帧[从]、显示)


//写入文件
文件存储f1
f1.打开(“data.yml”,FileStorage::WRITE)

f1遇到了同样的问题