简单理解planesweeping算法

plane sweeping算法
input:1张reference img(refimg),若干张source img(srcimg),img均为RGB图像,没有深度图信息
output:reference img的深度图。更详细地说,是refimg每一个像素点(pix)的深度

具体方法:

  1. 在refimg的scene内划分一系列深度平面
  2. 考察refimg上某一个像素点,想要求得其深度。如果求得此像素点的深度,如法炮制,对每个像素点做类似操作即可获得refimg上所有像素点的深度。
  3. 假设此像素点对应的物体在某一个深度平面上,或者说假设此像素点的深度等于深度平面的深度。
  4. 如果此像素点对应的物体确实在此深度平面上,那么使用单应变换,可以预测出此像素点对应的物体在某一个srcimg上对应的像素点。
  5. 如果在srcimg上的预测位置的像素点确实和此物体的颜色一样(和refimg上此像素点的颜色一样),那么说明此像素点确实在假设的深度上。
for refpix in refimg:
	for d in hypotheticDepthPlaneList:
		refpix.depth=d	
		HypotheticSrcPix=refpix.homographyTo(srcimg)
		conpareResult=Compare(HypotheticSrcPix,
			srcimg[HypotheticSrcPix.i][HypotheticSrcPix.j])
		if conpareResult==True:
			refpix.depthConfirm=True
			break

补充:
如果只有一张srcimg,可能refimg上某些像素点在srcimg上找不到,所以要多张srcimg。

你可能感兴趣的:(三维重建,三维重建)