我希望您能帮助我继续使用openCV库编写代码,以便找到摄像机所看到的物体的深度值。
我已经完成了校准并找到了视差图,但我无法清楚地找到如何计算由相机拍摄的两张照片中每个像素的深度值的帮助。
有人可以帮忙吗? 谢谢。
我已经完成了校准并找到了视差图,但我无法清楚地找到如何计算由相机拍摄的两张照片中每个像素的深度值的帮助。
有人可以帮忙吗? 谢谢。
您可以使用以下公式计算点云的3D坐标:
Z = fB/D
X = (col-w/2)*Z/f
Y = (h/2-row)*Z/f
X、Y、Z是世界坐标,f是相机在校准后的像素焦距,B是基线或相机间距,D是视差;col、row表示图像中像素的列和行坐标,其尺寸为h、w。
但是,如果您成功地对相机进行了校准并获得了视差图,那么您必须已经知道这一点。校准和视差图计算比上述计算复杂一个数量级。
这里有一个链接,可以解决您的问题,并提供了一个简单的深度估计算法: http://www.epixea.com/research/multi-view-coding-thesisse13.html