我对上述问题进行了一些初步研究。我已经阅读了一些有关OpenCV的信息,看起来它可以为我提供帮助。
我有一个主题(它是一条金属链),我可以拍照,并希望确定其中一个链节的体积。我可以根据需要拍摄尽可能多的照片。准确计算链接数量需要什么?图片中需要一些尺寸参考吗?
我想实现我的目标的方法是,使用x张图像重建3D模型,然后将其导入Solidworks / CAD中以计算长度/宽度/体积等。
任何指针将不胜感激。
最佳答案
我认为您可以在这种情况下应用space carving(可以从链接中下载PDF)。此技术将使您能够构造对象的闭合多边形表示。
而且,是的,将需要一些方法来确定对象的比例。 Here是对照相机的内在和外在参数的简短讨论,这些参数用于建立图像像素与面积(或体积)之间的关系。由于空间雕刻需要在每帧之间改变视点,因此最好重新计算外部摄像机校准参数(外部参数)。 OpenCV具有确定相机参数的能力,请参阅this reference或此tutorial。
或者,如果可以假设相机的方向在各帧之间不会有太大变化,则可以尝试使用一种更简单的方法。如您所建议,可以将已知大小和方向的对象放置在图像中,从而提供缩放提示。请注意,此方法相当简单,但将在有限的条件下起作用。由于透视而造成的透视缩短以及由于相机方向的变化而导致的感知比例的变化将限制此方法。
一旦识别出链的“空间”并以多边形(即网格)形式表示,就应该直接计算体积。 OpenCV提供了一些应该帮助的数学原语。