小编Spe*_*d87的帖子

Disparity map中的OpenCv深度估计

我试图用OpenCV估计立体声对图像的深度.我有视差图和深度估计可以获得如下:

             (Baseline*focal)
depth  =     ------------------
           (disparity*SensorSize)
Run Code Online (Sandbox Code Playgroud)

我已经使用块匹配技术在两个校正的图像中找到相同的点.例如,OpenCV允许设置一些块匹配参数BMState->numberOfDisparities.

块匹配过程后:

cvFindStereoCorrespondenceBM( frame1r, frame2r, disp, BMState);
cvConvertScale( disp, disp, 16, 0 );
cvNormalize( disp, vdisp, 0, 255, CV_MINMAX );
Run Code Online (Sandbox Code Playgroud)

我发现深度值为:

if(cvGet2D(vdisp,y,x).val[0]>0)
   {
   depth =((baseline*focal)/(((cvGet2D(vdisp,y,x).val[0])*SENSOR_ELEMENT_SIZE)));
   }
Run Code Online (Sandbox Code Playgroud)

但是由于其值BMState->numberOfDisparities改变了结果值,所获得的深度值与前一个公式得到的值不同.

如何设置此参数?怎么改变这个参数?

谢谢

c++ opencv computer-vision disparity-mapping depth

6
推荐指数
1
解决办法
2万
查看次数

视场如何改变立体视觉中的深度估计?

我试图用两个摄像头估计立体声系统的深度.我使用的简单方程是:

           Baseline*Focal
Depth = ----------------------
             Disparity
Run Code Online (Sandbox Code Playgroud)

两个摄像头的视野不会改变允许的最大深度?它只改变可测量的最小深度?

opencv computer-vision stereoscopy

6
推荐指数
1
解决办法
3577
查看次数