3d 计算机视觉:生成表面上液滴的三维模型
考虑一滴液体在水平面上。我需要通过从不同角度拍摄图像来生成液滴的3D模型 假设:3d 计算机视觉:生成表面上液滴的三维模型,3d,computer-vision,geometry,3d,Computer Vision,Geometry,考虑一滴液体在水平面上。我需要通过从不同角度拍摄图像来生成液滴的3D模型 假设: 液滴围绕垂直轴对称 理想情况下,表面平整光滑 查询: 我需要多少这样的图像才能处理3D模型 我应该选择相机的哪个方向 我如何实现这一点 编辑:这是使用DropSnake插件拍摄的图像,该插件用于测量液滴的接触角。然而,有人告诉我,校准需要花费大量的时间和精力,否则可能会出现错误。大部分时间用于实现完美对齐,误差是由于阴影干扰和水滴弯曲光线造成的 我的方法是:我们可以放置多个摄像头,从各个角度拍摄许多雾滴照片,而无
DropSnake提供的精度为0.001度,因此即使是0.01度也可以。我担心液滴边缘附近没有可锁定的功能,因此立体成像是不可能的。这意味着您必须仅使用一张图像,相机与液滴垂直,如下所示: 你也应该在地板上放一些记号笔,或者把相机放在离水滴已知的距离内,以缓解这种情况。那么现在该怎么办:
(0,0,0)
是焦平面(图像中心)的中间,Z是距焦点的距离,x,y
方向与图像匹配
因此2D(x,y)
我们可以通过使用三角形相似性转换为3D:
(x - xs/2) / focal_length = X/distance
(y - ys/2) / focal_length = Y/distance
因此,3D位置将为:
X = (x - xs/2) * distance / focal_length
Y = (y - ys/2) * distance / focal_length
Z = distance
y
切片一个圆- 将相机靠近水滴
- 使用更高分辨率的相机(或插值)
- 提取轮廓时使用亚像素精度
xs,ys
是相机/图像分辨率,在图像上是角点的像素位置(以像素为单位)。对于2D图像和光栅gfx输出,零是左上角(对于OpenGL是左下角)是常见的,因为我显示图像存储在内存或文件或其他任何地方。您所指的原点是3D(不同的坐标系),原点位置应该在相机的焦点或其投影平面上。。。但仍然放在焦点轴上。。。否则,以后无法将像素位置正确转换为角度和三维坐标。。。