简易三维重建(一) 入门与配置

最近数图大型实验要做三维重建,看相关的书看的不够透彻,还是先上手再说。记录下自己学习的点滴过程,希望可以让更多人一起进步。

一,相关知识

  去图书馆找书,关于三维重建的只有这本  基于图像点特征的多视图三维重建,书对原理讲的还不错。从中了解了一些三维重建的方法。决定选用SIFT( Scale Invariant Feature Transform,尺度不变特征变换匹配算法)+SfM( Structure from Motion)的方法,简单来说就是用SIFT处理图片得到特征向量,在用SfM进行一系列操作,就完成三维重建。当然实际没有这么简单,还要就行一些处理。
关于SfM的原理: http://blog.csdn.net/AIchipmunk/article/details/48132109  这篇文章讲的通俗易懂。就不再赘述。关于SIFT的部分下一篇会讲。

二,配置

主要参考了  VS2013+opencv3.3+opencv_contrib_3.3配置 这篇文章。

配置的时候进了好几个大坑,这里就分享下自己中的坑。



一、下载文件(选zip格式)

1.cmake

2.opencv3.3

3.opencv_contrib_3.3

4.CMake编译需要的几个文件

a)ffmpeg

b)ippicv

c)xfeature2d

注意:这里opencv和opencv_contrib一定要版本一样,我就是中了这个坑。


二、用CMake编译opencv3.3与opencv_contrib_3.3

首先要打开CMake GUI然后设置好源代码路径与编译路径。



注意:版本号一定要选对。如在configure里,选择VS15 2017 win64,然后点finish


错误内容:Unknown CMake command "ovc_define_module


原因:这是由于opencv的版本与opencv_contrib不一致引起的。解决办法,下载统一版本重新编译.


FFmpeg或ippicv下载不成功的解决方案

ffmpeg的3个文件下载完成后,将其复制到下载的opencv3.3源文件的.cache/3rdparty/ffmpeg下。关闭CMake,将相应的文件名改为


将ippicv下载的文件,放入.cache/3rdparty/ippicv下,将文件名改为“75060a0c662c0800f48995b7e9b085f6-ippicv_2017u2_win_intel64_20170418.zip”

完成之后,打开CMake,不要改配置,直接点击Configure按钮,继续生成。



中间过程省略,有空会补全, 要善于看cmake的各个文本,如download,error,




附:依赖项(复制黏贴)

通用属性 -> 链接器 -> 输入 -> 附加依赖项中添加

opencv_aruco330d.lib
opencv_bgsegm330d.lib
opencv_bioinspired330d.lib
opencv_calib3d330d.lib
opencv_ccalib330d.lib
opencv_core330d.lib
opencv_datasets330d.lib
opencv_dnn330d.lib
opencv_dpm330d.lib
opencv_face330d.lib
opencv_features2d330d.lib
opencv_flann330d.lib
opencv_fuzzy330d.lib
opencv_highgui330d.lib
opencv_imgcodecs330d.lib
opencv_imgproc330d.lib
opencv_img_hash330d.lib
opencv_line_descriptor330d.lib
opencv_ml330d.lib
opencv_objdetect330d.lib
opencv_optflow330d.lib
opencv_phase_unwrapping330d.lib
opencv_photo330d.lib
opencv_plot330d.lib
opencv_reg330d.lib
opencv_rgbd330d.lib
opencv_saliency330d.lib
opencv_shape330d.lib
opencv_stereo330d.lib
opencv_stitching330d.lib
opencv_structured_light330d.lib
opencv_superres330d.lib
opencv_surface_matching330d.lib
opencv_text330d.lib
opencv_tracking330d.lib
opencv_video330d.lib
opencv_videoio330d.lib
opencv_videostab330d.lib
opencv_xfeatures2d330d.lib
opencv_ximgproc330d.lib
opencv_xobjdetect330d.lib
opencv_xphoto330d.lib



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