我试图用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
改变了结果值,所获得的深度值与前一个公式得到的值不同.
如何设置此参数?怎么改变这个参数?
谢谢
我试图用两个摄像头估计立体声系统的深度.我使用的简单方程是:
Baseline*Focal
Depth = ----------------------
Disparity
Run Code Online (Sandbox Code Playgroud)
两个摄像头的视野不会改变允许的最大深度?它只改变可测量的最小深度?