我正在尝试使用 OpenCV 从立体对图像中估计深度。我有视差图和深度估计可以得到:
(Baseline*focal)
depth = ------------------
(disparity*SensorSize)
我使用块匹配技术在两个校正图像中找到相同的点。OpenCV 允许设置一些块匹配参数,例如BMState->numberOfDisparities
.
在块匹配过程之后:
cvFindStereoCorrespondenceBM( frame1r, frame2r, disp, BMState);
cvConvertScale( disp, disp, 16, 0 );
cvNormalize( disp, vdisp, 0, 255, CV_MINMAX );
我发现深度值为:
if(cvGet2D(vdisp,y,x).val[0]>0)
{
depth =((baseline*focal)/(((cvGet2D(vdisp,y,x).val[0])*SENSOR_ELEMENT_SIZE)));
}
但是得到的深度值与上式得到的值不同,因为 的值BMState->numberOfDisparities
改变了结果值。
如何设置此参数?这个参数怎么改?
谢谢