OpenCV可以进行3D扫描吗?

时间:2014-09-02 08:47:49

标签: opencv 3d scanning

这是一个普遍的问题,我只是在寻找一个起点,而不是一个完整的解决方案。

我计划进行一些3D扫描,意味着检查表面并从中生成3D模型。 AFAIK有两种方法:一种是使用激光光栅扫描整个表面,另一种是使用相机,其中网格投射在表面上(不确定一张带有此网格的图片是否足够或者是否需要更多图片)完成)。

我的问题:OpenCV是否支持使用相机的第二种方法?如果是:涉及哪些类/功能?

欢迎提供所有提示: - )

2 个答案:

答案 0 :(得分:2)

第二种方法需要投影仪和相机。第三类算法称为动态结构,允许您从多个图像中捕获3D(稀疏点云)。稍后可以使用多视图立体声将稀疏点云转换为密集表面,并且可以使用泊松表面重建来重建网格模型。虽然您可以使用OpenCV实现上述功能,但我会推荐现有的软件。

稀疏3D重建

Bundler:http://www.cs.cornell.edu/~snavely/bundler/

VisualSFM:http://ccwu.me/vsfm/

Multiview Stereo(MVS)

CMVS:http://www.di.ens.fr/cmvs/

Fusion:http://www.gris.informatik.tu-darmstadt.de/projects/multiscale-depthmap-fusion/

如果您可以访问带GPU的机器,我强烈推荐使用VisualSFM,因为它将稀疏重建与MVS集成在一起。

答案 1 :(得分:1)

看看Kanade,光流。

你基本上可以使用goodFeaturesToTrack并在第1帧中找到功能,然后在第2帧中你可以找到相同的功能。根据它们的位移,您可以找到深度或3D。

希望这有帮助!