├── .clang-format
├── .gitignore
├── CMakeLists.txt
├── README.md
├── applications
├── CMakeLists.txt
├── build_1dsfm_reconstruction.cc
├── build_1dsfm_reconstruction_flags.txt
├── build_reconstruction.cc
├── build_reconstruction_flags.txt
├── calibrate_camera_intrinsics.cc
├── calibrate_camera_intrinsics_flags.txt
├── colorize_reconstruction.cc
├── command_line_helpers.h
├── compare_reconstructions.cc
├── compute_matching_relative_pose_errors.cc
├── compute_reconstruction_statistics.cc
├── compute_two_view_geometry.cc
├── convert_bundle_file.cc
├── convert_nvm_file.cc
├── convert_sift_key_file.cc
├── convert_theia_reconstruction_to_bundler_file.cc
├── create_calibration_file_from_exif.cc
├── create_reconstruction_from_strecha_dataset.cc
├── evaluate_relative_translation_optimization.cc
├── export_colmap_files.cc
├── export_reconstruction_to_pmvs.cc
├── export_to_nvm_file.cc
├── extract_features.cc
├── print_reconstruction_statistics.h
├── undistort_images.cc
├── verify_1dsfm_input.cc
├── view_reconstruction.cc
└── write_reconstruction_ply_file.cc
├── cmake
├── FindEigen.cmake
├── FindGflags.cmake
├── FindGlog.cmake
├── FindOpenImageIO.cmake
├── FindRocksDB.cmake
├── FindSphinx.cmake
├── FindSuiteSparse.cmake
├── OptimizeTheiaCompilerFlags.cmake
├── TheiaConfig.cmake.in
├── TheiaConfigVersion.cmake.in
└── uninstall.cmake.in
├── data
├── camera_sensor_database.txt
├── camera_sensor_database_license.txt
├── image
│ ├── .DS_Store
│ ├── descriptor
│ │ └── img1.png
│ ├── exif.jpg
│ ├── gps_exif.jpg
│ ├── img1.png
│ ├── img2.png
│ ├── img3.png
│ ├── img4.png
│ ├── img5.png
│ ├── img6.png
│ ├── keypoint_detector
│ │ └── img1.png
│ └── test1.jpg
├── io
│ └── calibration_test.json
└── sfm
│ ├── fountain11.bin
│ ├── fountain11_matches.bin
│ └── gt_fountain11.bin
├── docs
├── CMakeLists.txt
├── make_docs.py
└── source
│ ├── CMakeLists.txt
│ ├── _static
│ ├── ajax-loader.gif
│ ├── basic.css
│ ├── comment-bright.png
│ ├── comment-close.png
│ ├── comment.png
│ ├── commit-msg
│ ├── default.css
│ ├── doctools.js
│ ├── down-pressed.png
│ ├── down.png
│ ├── file.png
│ ├── jquery.js
│ ├── minus.png
│ ├── plus.png
│ ├── pygments.css
│ ├── rtd.css
│ ├── searchtools.js
│ ├── sidebar.js
│ ├── theia_logo.png
│ ├── underscore.js
│ ├── up-pressed.png
│ ├── up.png
│ └── websupport.js
│ ├── _templates
│ └── layout.html
│ ├── api.rst
│ ├── applications.rst
│ ├── bibliography.rst
│ ├── building.rst
│ ├── cameras.rst
│ ├── conf.py
│ ├── contributions.rst
│ ├── faq.rst
│ ├── features.rst
│ ├── global_linear_position_estimation.png
│ ├── global_sfm.png
│ ├── image.rst
│ ├── incremental_sfm.png
│ ├── index.rst
│ ├── license.rst
│ ├── math.rst
│ ├── performance.rst
│ ├── pisa.png
│ ├── pose.rst
│ ├── ransac.rst
│ ├── releases.rst
│ └── sfm.rst
├── include
└── theia
│ └── theia.h
├── libraries
├── CMakeLists.txt
├── akaze
│ ├── CMakeLists.txt
│ ├── LICENSE
│ ├── README.md
│ ├── akaze_features.cpp
│ ├── akaze_match.cpp
│ ├── cimg
│ │ ├── CImg.h
│ │ ├── CMakeLists.txt
│ │ ├── Licence_CeCILL-C_V1-en.txt
│ │ ├── Licence_CeCILL_V2-en.txt
│ │ ├── README.txt
│ │ └── cmake-modules
│ │ │ ├── FindBOARD.cmake
│ │ │ ├── FindEZMINC.cmake
│ │ │ ├── FindFFMPEG.cmake
│ │ │ ├── FindFFTW3.cmake
│ │ │ ├── FindFFTW3F.cmake
│ │ │ ├── FindGTK2.cmake
│ │ │ ├── FindHDF5.cmake
│ │ │ ├── FindImageMagick.cmake
│ │ │ ├── FindJPEG.cmake
│ │ │ ├── FindLAPACK.cmake
│ │ │ ├── FindMINC.cmake
│ │ │ ├── FindNetCDF.cmake
│ │ │ ├── FindOpenCV.cmake
│ │ │ ├── FindOpenEXR.cmake
│ │ │ ├── FindOpenMP.cmake
│ │ │ ├── FindPNG.cmake
│ │ │ ├── FindTIFF.cmake
│ │ │ ├── FindTest.cmake
│ │ │ ├── FindX11.cmake
│ │ │ └── FindZLIB.cmake
│ ├── cmake
│ │ ├── CheckSSEFeatures.cmake
│ │ ├── FindEigen.cmake
│ │ └── OptimizeCompilerFlags.cmake
│ ├── datasets
│ │ └── iguazu
│ │ │ ├── H1to1p
│ │ │ ├── H1to2p
│ │ │ ├── H1to3p
│ │ │ ├── H1to4p
│ │ │ ├── H1to5p
│ │ │ ├── H1to6p
│ │ │ ├── img1.pgm
│ │ │ ├── img2.pgm
│ │ │ ├── img3.pgm
│ │ │ ├── img4.pgm
│ │ │ ├── img5.pgm
│ │ │ └── img6.pgm
│ ├── src
│ │ ├── AKAZE.cpp
│ │ ├── AKAZE.h
│ │ ├── AKAZEConfig.h
│ │ ├── convolution.cpp
│ │ ├── convolution.h
│ │ ├── fed.cpp
│ │ ├── fed.h
│ │ ├── nldiffusion_functions.cpp
│ │ ├── nldiffusion_functions.h
│ │ ├── utils.cpp
│ │ └── utils.h
│ └── timer
│ │ ├── CMakeLists.txt
│ │ ├── timer.cpp
│ │ └── timer.hpp
├── cereal
│ ├── .gitignore
│ ├── .travis.yml
│ ├── CMakeLists.txt
│ ├── LICENSE
│ ├── README.md
│ ├── doc
│ │ ├── DoxygenLayout.xml
│ │ ├── doxygen.in
│ │ ├── footer.html
│ │ └── mainpage.dox
│ ├── include
│ │ └── cereal
│ │ │ ├── access.hpp
│ │ │ ├── archives
│ │ │ ├── adapters.hpp
│ │ │ ├── binary.hpp
│ │ │ ├── json.hpp
│ │ │ ├── portable_binary.hpp
│ │ │ └── xml.hpp
│ │ │ ├── cereal.hpp
│ │ │ ├── details
│ │ │ ├── helpers.hpp
│ │ │ ├── polymorphic_impl.hpp
│ │ │ ├── polymorphic_impl_fwd.hpp
│ │ │ ├── static_object.hpp
│ │ │ ├── traits.hpp
│ │ │ └── util.hpp
│ │ │ ├── external
│ │ │ ├── base64.hpp
│ │ │ ├── rapidjson
│ │ │ │ ├── allocators.h
│ │ │ │ ├── document.h
│ │ │ │ ├── encodedstream.h
│ │ │ │ ├── encodings.h
│ │ │ │ ├── error
│ │ │ │ │ ├── en.h
│ │ │ │ │ └── error.h
│ │ │ │ ├── filereadstream.h
│ │ │ │ ├── filewritestream.h
│ │ │ │ ├── fwd.h
│ │ │ │ ├── internal
│ │ │ │ │ ├── biginteger.h
│ │ │ │ │ ├── diyfp.h
│ │ │ │ │ ├── dtoa.h
│ │ │ │ │ ├── ieee754.h
│ │ │ │ │ ├── itoa.h
│ │ │ │ │ ├── meta.h
│ │ │ │ │ ├── pow10.h
│ │ │ │ │ ├── regex.h
│ │ │ │ │ ├── stack.h
│ │ │ │ │ ├── strfunc.h
│ │ │ │ │ ├── strtod.h
│ │ │ │ │ └── swap.h
│ │ │ │ ├── istreamwrapper.h
│ │ │ │ ├── memorybuffer.h
│ │ │ │ ├── memorystream.h
│ │ │ │ ├── msinttypes
│ │ │ │ │ ├── inttypes.h
│ │ │ │ │ └── stdint.h
│ │ │ │ ├── ostreamwrapper.h
│ │ │ │ ├── pointer.h
│ │ │ │ ├── prettywriter.h
│ │ │ │ ├── rapidjson.h
│ │ │ │ ├── reader.h
│ │ │ │ ├── schema.h
│ │ │ │ ├── stream.h
│ │ │ │ ├── stringbuffer.h
│ │ │ │ └── writer.h
│ │ │ └── rapidxml
│ │ │ │ ├── license.txt
│ │ │ │ ├── manual.html
│ │ │ │ ├── rapidxml.hpp
│ │ │ │ ├── rapidxml_iterators.hpp
│ │ │ │ ├── rapidxml_print.hpp
│ │ │ │ └── rapidxml_utils.hpp
│ │ │ ├── macros.hpp
│ │ │ └── types
│ │ │ ├── array.hpp
│ │ │ ├── base_class.hpp
│ │ │ ├── bitset.hpp
│ │ │ ├── boost_variant.hpp
│ │ │ ├── chrono.hpp
│ │ │ ├── common.hpp
│ │ │ ├── complex.hpp
│ │ │ ├── concepts
│ │ │ └── pair_associative_container.hpp
│ │ │ ├── deque.hpp
│ │ │ ├── forward_list.hpp
│ │ │ ├── functional.hpp
│ │ │ ├── list.hpp
│ │ │ ├── map.hpp
│ │ │ ├── memory.hpp
│ │ │ ├── polymorphic.hpp
│ │ │ ├── queue.hpp
│ │ │ ├── set.hpp
│ │ │ ├── stack.hpp
│ │ │ ├── string.hpp
│ │ │ ├── tuple.hpp
│ │ │ ├── unordered_map.hpp
│ │ │ ├── unordered_set.hpp
│ │ │ ├── utility.hpp
│ │ │ ├── valarray.hpp
│ │ │ └── vector.hpp
│ ├── sandbox
│ │ ├── CMakeLists.txt
│ │ ├── performance.cpp
│ │ ├── sandbox.cpp
│ │ ├── sandbox_json.cpp
│ │ ├── sandbox_rtti.cpp
│ │ ├── sandbox_shared_lib
│ │ │ ├── CMakeLists.txt
│ │ │ ├── base.cpp
│ │ │ ├── base.hpp
│ │ │ ├── derived.cpp
│ │ │ └── derived.hpp
│ │ └── sandbox_vs.cpp
│ ├── scripts
│ │ ├── renameincludes.sh
│ │ ├── updatecoverage.sh
│ │ └── updatedoc.in
│ ├── unittests
│ │ ├── CMakeLists.txt
│ │ ├── array.cpp
│ │ ├── basic_string.cpp
│ │ ├── bitset.cpp
│ │ ├── boost_variant.cpp
│ │ ├── chrono.cpp
│ │ ├── cmake-config-module.cmake
│ │ ├── common.hpp
│ │ ├── complex.cpp
│ │ ├── deque.cpp
│ │ ├── forward_list.cpp
│ │ ├── list.cpp
│ │ ├── load_construct.cpp
│ │ ├── map.cpp
│ │ ├── memory.cpp
│ │ ├── memory_cycles.cpp
│ │ ├── multimap.cpp
│ │ ├── multiset.cpp
│ │ ├── pair.cpp
│ │ ├── pod.cpp
│ │ ├── polymorphic.cpp
│ │ ├── portability_test.cpp
│ │ ├── portable_binary_archive.cpp
│ │ ├── priority_queue.cpp
│ │ ├── queue.cpp
│ │ ├── run_portability_test.sh
│ │ ├── run_valgrind.sh
│ │ ├── set.cpp
│ │ ├── stack.cpp
│ │ ├── structs.cpp
│ │ ├── structs_minimal.cpp
│ │ ├── structs_specialized.cpp
│ │ ├── tuple.cpp
│ │ ├── unordered_loads.cpp
│ │ ├── unordered_map.cpp
│ │ ├── unordered_multimap.cpp
│ │ ├── unordered_multiset.cpp
│ │ ├── unordered_set.cpp
│ │ ├── user_data_adapters.cpp
│ │ ├── valarray.cpp
│ │ ├── vector.cpp
│ │ └── versioning.cpp
│ └── vs2013
│ │ ├── .gitignore
│ │ ├── sandbox
│ │ ├── sandbox.vcxproj
│ │ └── sandbox.vcxproj.filters
│ │ ├── sandbox_json
│ │ ├── sandbox_json.vcxproj
│ │ └── sandbox_json.vcxproj.filters
│ │ ├── sandbox_rtti
│ │ ├── sandbox_rtti.vcxproj
│ │ └── sandbox_rtti.vcxproj.filters
│ │ ├── sandbox_vs
│ │ ├── sandbox_vs.vcxproj
│ │ └── sandbox_vs.vcxproj.filters
│ │ ├── sandbox_vs_dll
│ │ ├── sandbox_vs_dll.vcxproj
│ │ └── sandbox_vs_dll.vcxproj.filters
│ │ ├── unittests
│ │ ├── main.cpp
│ │ ├── unittests.vcxproj
│ │ └── unittests.vcxproj.filters
│ │ └── vs2013.sln
├── flann
│ ├── CMakeLists.txt
│ ├── COPYING
│ ├── ChangeLog
│ ├── README.md
│ ├── bin
│ │ ├── download_checkmd5.py
│ │ ├── indent.sh
│ │ ├── make_release.sh
│ │ ├── run_test.py
│ │ └── uncrustify.cfg
│ ├── cmake
│ │ ├── CMakeLists.txt
│ │ ├── FindFlann.cmake
│ │ ├── UseLATEX.cmake
│ │ ├── flann.pc.in
│ │ ├── flann_utils.cmake
│ │ └── uninstall_target.cmake.in
│ ├── doc
│ │ ├── CMakeLists.txt
│ │ ├── images
│ │ │ └── cmake-gui.png
│ │ ├── manual.tex
│ │ └── references.bib
│ ├── examples
│ │ ├── CMakeLists.txt
│ │ ├── README
│ │ ├── flann_example.c
│ │ ├── flann_example.cpp
│ │ └── flann_example_mpi.cpp
│ ├── src
│ │ ├── CMakeLists.txt
│ │ ├── cpp
│ │ │ ├── CMakeLists.txt
│ │ │ ├── empty.cpp
│ │ │ └── flann
│ │ │ │ ├── algorithms
│ │ │ │ ├── all_indices.h
│ │ │ │ ├── autotuned_index.h
│ │ │ │ ├── center_chooser.h
│ │ │ │ ├── composite_index.h
│ │ │ │ ├── dist.h
│ │ │ │ ├── hierarchical_clustering_index.h
│ │ │ │ ├── kdtree_cuda_3d_index.cu
│ │ │ │ ├── kdtree_cuda_3d_index.h
│ │ │ │ ├── kdtree_cuda_builder.h
│ │ │ │ ├── kdtree_index.h
│ │ │ │ ├── kdtree_single_index.h
│ │ │ │ ├── kmeans_index.h
│ │ │ │ ├── linear_index.h
│ │ │ │ ├── lsh_index.h
│ │ │ │ └── nn_index.h
│ │ │ │ ├── config.h
│ │ │ │ ├── config.h.in
│ │ │ │ ├── defines.h
│ │ │ │ ├── ext
│ │ │ │ ├── lz4.c
│ │ │ │ ├── lz4.h
│ │ │ │ ├── lz4hc.c
│ │ │ │ └── lz4hc.h
│ │ │ │ ├── flann.cpp
│ │ │ │ ├── flann.h
│ │ │ │ ├── flann.hpp
│ │ │ │ ├── flann_cpp.cpp
│ │ │ │ ├── general.h
│ │ │ │ ├── io
│ │ │ │ └── hdf5.h
│ │ │ │ ├── mpi
│ │ │ │ ├── client.h
│ │ │ │ ├── flann_mpi_client.cpp
│ │ │ │ ├── flann_mpi_server.cpp
│ │ │ │ ├── index.h
│ │ │ │ ├── matrix.h
│ │ │ │ ├── queries.h
│ │ │ │ └── server.h
│ │ │ │ ├── nn
│ │ │ │ ├── ground_truth.h
│ │ │ │ ├── index_testing.h
│ │ │ │ └── simplex_downhill.h
│ │ │ │ └── util
│ │ │ │ ├── allocator.h
│ │ │ │ ├── any.h
│ │ │ │ ├── cuda
│ │ │ │ ├── heap.h
│ │ │ │ └── result_set.h
│ │ │ │ ├── cutil_math.h
│ │ │ │ ├── dynamic_bitset.h
│ │ │ │ ├── heap.h
│ │ │ │ ├── logger.h
│ │ │ │ ├── lsh_table.h
│ │ │ │ ├── matrix.h
│ │ │ │ ├── object_factory.h
│ │ │ │ ├── params.h
│ │ │ │ ├── random.h
│ │ │ │ ├── result_set.h
│ │ │ │ ├── sampling.h
│ │ │ │ ├── saving.h
│ │ │ │ ├── serialization.h
│ │ │ │ └── timer.h
│ │ ├── matlab
│ │ │ ├── CMakeLists.txt
│ │ │ ├── flann_build_index.m
│ │ │ ├── flann_free_index.m
│ │ │ ├── flann_load_index.m
│ │ │ ├── flann_save_index.m
│ │ │ ├── flann_search.m
│ │ │ ├── flann_set_distance_type.m
│ │ │ ├── nearest_neighbors.cpp
│ │ │ └── test_flann.m
│ │ ├── python
│ │ │ ├── CMakeLists.txt
│ │ │ ├── pyflann
│ │ │ │ ├── __init__.py
│ │ │ │ ├── exceptions.py
│ │ │ │ ├── flann_ctypes.py
│ │ │ │ └── index.py
│ │ │ └── setup.py.tpl
│ │ └── ruby
│ │ │ ├── Gemfile
│ │ │ ├── LICENSE.txt
│ │ │ ├── Manifest.txt
│ │ │ ├── Rakefile
│ │ │ ├── flann.gemspec
│ │ │ ├── lib
│ │ │ ├── flann.rb
│ │ │ └── flann
│ │ │ │ ├── index.rb
│ │ │ │ └── version.rb
│ │ │ └── spec
│ │ │ ├── flann_spec.rb
│ │ │ ├── index_spec.rb
│ │ │ ├── spec_helper.rb
│ │ │ └── test.dataset
│ └── test
│ │ ├── CMakeLists.txt
│ │ ├── flann_autotuned_test.cpp
│ │ ├── flann_cuda_test.cu
│ │ ├── flann_hierarchical_test.cpp
│ │ ├── flann_kdtree_single_test.cpp
│ │ ├── flann_kdtree_test.cpp
│ │ ├── flann_kmeans_test.cpp
│ │ ├── flann_linear_test.cpp
│ │ ├── flann_lsh_test.cpp
│ │ ├── flann_multithreaded_test.cpp
│ │ ├── flann_tests.h
│ │ ├── memusage_clustering.py
│ │ ├── memusage_nn.py
│ │ ├── test_clustering.py
│ │ ├── test_index_save.py
│ │ ├── test_nn.py
│ │ ├── test_nn_autotune.py
│ │ └── test_nn_index.py
├── gtest
│ ├── CHANGES
│ ├── CMakeLists.txt
│ ├── CONTRIBUTORS
│ ├── LICENSE
│ ├── Makefile.am
│ ├── README.md
│ ├── build-aux
│ │ └── .keep
│ ├── cmake
│ │ └── internal_utils.cmake
│ ├── codegear
│ │ ├── gtest.cbproj
│ │ ├── gtest.groupproj
│ │ ├── gtest_all.cc
│ │ ├── gtest_link.cc
│ │ ├── gtest_main.cbproj
│ │ └── gtest_unittest.cbproj
│ ├── configure.ac
│ ├── docs
│ │ ├── AdvancedGuide.md
│ │ ├── DevGuide.md
│ │ ├── Documentation.md
│ │ ├── FAQ.md
│ │ ├── Primer.md
│ │ ├── PumpManual.md
│ │ ├── Samples.md
│ │ ├── V1_5_AdvancedGuide.md
│ │ ├── V1_5_Documentation.md
│ │ ├── V1_5_FAQ.md
│ │ ├── V1_5_Primer.md
│ │ ├── V1_5_PumpManual.md
│ │ ├── V1_5_XcodeGuide.md
│ │ ├── V1_6_AdvancedGuide.md
│ │ ├── V1_6_Documentation.md
│ │ ├── V1_6_FAQ.md
│ │ ├── V1_6_Primer.md
│ │ ├── V1_6_PumpManual.md
│ │ ├── V1_6_Samples.md
│ │ ├── V1_6_XcodeGuide.md
│ │ ├── V1_7_AdvancedGuide.md
│ │ ├── V1_7_Documentation.md
│ │ ├── V1_7_FAQ.md
│ │ ├── V1_7_Primer.md
│ │ ├── V1_7_PumpManual.md
│ │ ├── V1_7_Samples.md
│ │ ├── V1_7_XcodeGuide.md
│ │ └── XcodeGuide.md
│ ├── include
│ │ └── gtest
│ │ │ ├── gtest-death-test.h
│ │ │ ├── gtest-message.h
│ │ │ ├── gtest-param-test.h
│ │ │ ├── gtest-param-test.h.pump
│ │ │ ├── gtest-printers.h
│ │ │ ├── gtest-spi.h
│ │ │ ├── gtest-test-part.h
│ │ │ ├── gtest-typed-test.h
│ │ │ ├── gtest.h
│ │ │ ├── gtest_pred_impl.h
│ │ │ ├── gtest_prod.h
│ │ │ └── internal
│ │ │ ├── custom
│ │ │ ├── gtest-port.h
│ │ │ ├── gtest-printers.h
│ │ │ └── gtest.h
│ │ │ ├── gtest-death-test-internal.h
│ │ │ ├── gtest-filepath.h
│ │ │ ├── gtest-internal.h
│ │ │ ├── gtest-linked_ptr.h
│ │ │ ├── gtest-param-util-generated.h
│ │ │ ├── gtest-param-util-generated.h.pump
│ │ │ ├── gtest-param-util.h
│ │ │ ├── gtest-port-arch.h
│ │ │ ├── gtest-port.h
│ │ │ ├── gtest-string.h
│ │ │ ├── gtest-tuple.h
│ │ │ ├── gtest-tuple.h.pump
│ │ │ ├── gtest-type-util.h
│ │ │ └── gtest-type-util.h.pump
│ ├── m4
│ │ ├── acx_pthread.m4
│ │ └── gtest.m4
│ ├── make
│ │ └── Makefile
│ ├── msvc
│ │ ├── gtest-md.sln
│ │ ├── gtest-md.vcproj
│ │ ├── gtest.sln
│ │ ├── gtest.vcproj
│ │ ├── gtest_main-md.vcproj
│ │ ├── gtest_main.vcproj
│ │ ├── gtest_prod_test-md.vcproj
│ │ ├── gtest_prod_test.vcproj
│ │ ├── gtest_unittest-md.vcproj
│ │ └── gtest_unittest.vcproj
│ ├── samples
│ │ ├── prime_tables.h
│ │ ├── sample1.cc
│ │ ├── sample1.h
│ │ ├── sample10_unittest.cc
│ │ ├── sample1_unittest.cc
│ │ ├── sample2.cc
│ │ ├── sample2.h
│ │ ├── sample2_unittest.cc
│ │ ├── sample3-inl.h
│ │ ├── sample3_unittest.cc
│ │ ├── sample4.cc
│ │ ├── sample4.h
│ │ ├── sample4_unittest.cc
│ │ ├── sample5_unittest.cc
│ │ ├── sample6_unittest.cc
│ │ ├── sample7_unittest.cc
│ │ ├── sample8_unittest.cc
│ │ └── sample9_unittest.cc
│ ├── scripts
│ │ ├── common.py
│ │ ├── fuse_gtest_files.py
│ │ ├── gen_gtest_pred_impl.py
│ │ ├── gtest-config.in
│ │ ├── pump.py
│ │ ├── release_docs.py
│ │ ├── test
│ │ │ └── Makefile
│ │ ├── upload.py
│ │ └── upload_gtest.py
│ ├── src
│ │ ├── gtest-all.cc
│ │ ├── gtest-death-test.cc
│ │ ├── gtest-filepath.cc
│ │ ├── gtest-internal-inl.h
│ │ ├── gtest-port.cc
│ │ ├── gtest-printers.cc
│ │ ├── gtest-test-part.cc
│ │ ├── gtest-typed-test.cc
│ │ ├── gtest.cc
│ │ └── gtest_main.cc
│ ├── test
│ │ ├── gtest-death-test_ex_test.cc
│ │ ├── gtest-death-test_test.cc
│ │ ├── gtest-filepath_test.cc
│ │ ├── gtest-linked_ptr_test.cc
│ │ ├── gtest-listener_test.cc
│ │ ├── gtest-message_test.cc
│ │ ├── gtest-options_test.cc
│ │ ├── gtest-param-test2_test.cc
│ │ ├── gtest-param-test_test.cc
│ │ ├── gtest-param-test_test.h
│ │ ├── gtest-port_test.cc
│ │ ├── gtest-printers_test.cc
│ │ ├── gtest-test-part_test.cc
│ │ ├── gtest-tuple_test.cc
│ │ ├── gtest-typed-test2_test.cc
│ │ ├── gtest-typed-test_test.cc
│ │ ├── gtest-typed-test_test.h
│ │ ├── gtest-unittest-api_test.cc
│ │ ├── gtest_all_test.cc
│ │ ├── gtest_break_on_failure_unittest.py
│ │ ├── gtest_break_on_failure_unittest_.cc
│ │ ├── gtest_catch_exceptions_test.py
│ │ ├── gtest_catch_exceptions_test_.cc
│ │ ├── gtest_color_test.py
│ │ ├── gtest_color_test_.cc
│ │ ├── gtest_env_var_test.py
│ │ ├── gtest_env_var_test_.cc
│ │ ├── gtest_environment_test.cc
│ │ ├── gtest_filter_unittest.py
│ │ ├── gtest_filter_unittest_.cc
│ │ ├── gtest_help_test.py
│ │ ├── gtest_help_test_.cc
│ │ ├── gtest_list_tests_unittest.py
│ │ ├── gtest_list_tests_unittest_.cc
│ │ ├── gtest_main_unittest.cc
│ │ ├── gtest_no_test_unittest.cc
│ │ ├── gtest_output_test.py
│ │ ├── gtest_output_test_.cc
│ │ ├── gtest_output_test_golden_lin.txt
│ │ ├── gtest_pred_impl_unittest.cc
│ │ ├── gtest_premature_exit_test.cc
│ │ ├── gtest_prod_test.cc
│ │ ├── gtest_repeat_test.cc
│ │ ├── gtest_shuffle_test.py
│ │ ├── gtest_shuffle_test_.cc
│ │ ├── gtest_sole_header_test.cc
│ │ ├── gtest_stress_test.cc
│ │ ├── gtest_test_utils.py
│ │ ├── gtest_throw_on_failure_ex_test.cc
│ │ ├── gtest_throw_on_failure_test.py
│ │ ├── gtest_throw_on_failure_test_.cc
│ │ ├── gtest_uninitialized_test.py
│ │ ├── gtest_uninitialized_test_.cc
│ │ ├── gtest_unittest.cc
│ │ ├── gtest_xml_outfile1_test_.cc
│ │ ├── gtest_xml_outfile2_test_.cc
│ │ ├── gtest_xml_outfiles_test.py
│ │ ├── gtest_xml_output_unittest.py
│ │ ├── gtest_xml_output_unittest_.cc
│ │ ├── gtest_xml_test_utils.py
│ │ ├── production.cc
│ │ └── production.h
│ └── xcode
│ │ ├── Config
│ │ ├── DebugProject.xcconfig
│ │ ├── FrameworkTarget.xcconfig
│ │ ├── General.xcconfig
│ │ ├── ReleaseProject.xcconfig
│ │ ├── StaticLibraryTarget.xcconfig
│ │ └── TestTarget.xcconfig
│ │ ├── Resources
│ │ └── Info.plist
│ │ ├── Samples
│ │ └── FrameworkSample
│ │ │ ├── Info.plist
│ │ │ ├── WidgetFramework.xcodeproj
│ │ │ └── project.pbxproj
│ │ │ ├── runtests.sh
│ │ │ ├── widget.cc
│ │ │ ├── widget.h
│ │ │ └── widget_test.cc
│ │ ├── Scripts
│ │ ├── runtests.sh
│ │ └── versiongenerate.py
│ │ └── gtest.xcodeproj
│ │ └── project.pbxproj
├── optimo
│ ├── CMakeLists.txt
│ ├── LICENSE
│ ├── README.md
│ └── optimo
│ │ ├── CMakeLists.txt
│ │ ├── core
│ │ ├── CMakeLists.txt
│ │ ├── numerical_gradient.h
│ │ ├── numerical_gradient_tests.cc
│ │ ├── numerical_hessian.h
│ │ ├── numerical_hessian_tests.cc
│ │ ├── objects.h
│ │ ├── objects_ls.h
│ │ └── objects_tests.cc
│ │ ├── solvers
│ │ ├── CMakeLists.txt
│ │ ├── bfgs.h
│ │ ├── bfgs_api.h
│ │ ├── bfgs_impl.h
│ │ ├── bfgs_tests.cc
│ │ ├── gradient_descent.h
│ │ ├── gradient_descent_tests.cc
│ │ ├── newton.h
│ │ ├── newton_api.h
│ │ ├── newton_impl.h
│ │ ├── newton_tests.cc
│ │ ├── primal_dual_lp.h
│ │ ├── primal_dual_lp_api.h
│ │ ├── primal_dual_lp_impl.h
│ │ ├── primal_dual_lp_tests.cc
│ │ ├── primal_dual_qp.h
│ │ ├── primal_dual_qp_api.h
│ │ ├── primal_dual_qp_impl.h
│ │ ├── primal_dual_qp_tests.cc
│ │ ├── solver.h
│ │ ├── sparse_primal_dual_lp.h
│ │ ├── sparse_primal_dual_lp_api.h
│ │ ├── sparse_primal_dual_lp_impl.h
│ │ ├── sparse_primal_dual_lp_tests.cc
│ │ ├── sparse_primal_dual_qp.h
│ │ ├── sparse_primal_dual_qp_api.h
│ │ ├── sparse_primal_dual_qp_impl.h
│ │ └── sparse_primal_dual_qp_tests.cc
│ │ └── utils
│ │ └── matrix_utils.h
├── spectra
│ ├── .gitignore
│ ├── .travis.yml
│ ├── AUTHORS.md
│ ├── CHANGELOG.md
│ ├── README.md
│ ├── benchmark
│ │ ├── ArpackFun.h
│ │ ├── Cpp.cpp
│ │ ├── F77.cpp
│ │ ├── Makefile
│ │ ├── main.cpp
│ │ ├── result_analyzer.R
│ │ ├── timer.h
│ │ └── wrapper.f
│ ├── doxygen
│ │ ├── Doxyfile
│ │ └── Overview.md
│ ├── include
│ │ ├── GenEigsComplexShiftSolver.h
│ │ ├── GenEigsRealShiftSolver.h
│ │ ├── GenEigsSolver.h
│ │ ├── LinAlg
│ │ │ ├── DoubleShiftQR.h
│ │ │ ├── TridiagEigen.h
│ │ │ ├── UpperHessenbergEigen.h
│ │ │ └── UpperHessenbergQR.h
│ │ ├── MatOp
│ │ │ ├── DenseCholesky.h
│ │ │ ├── DenseGenComplexShiftSolve.h
│ │ │ ├── DenseGenMatProd.h
│ │ │ ├── DenseGenRealShiftSolve.h
│ │ │ ├── DenseSymMatProd.h
│ │ │ ├── DenseSymShiftSolve.h
│ │ │ ├── SparseCholesky.h
│ │ │ ├── SparseGenMatProd.h
│ │ │ ├── SparseGenRealShiftSolve.h
│ │ │ ├── SparseRegularInverse.h
│ │ │ ├── SparseSymMatProd.h
│ │ │ ├── SparseSymShiftSolve.h
│ │ │ └── internal
│ │ │ │ ├── SymGEigsCholeskyOp.h
│ │ │ │ └── SymGEigsRegInvOp.h
│ │ ├── SymEigsShiftSolver.h
│ │ ├── SymEigsSolver.h
│ │ ├── SymGEigsSolver.h
│ │ └── Util
│ │ │ ├── CompInfo.h
│ │ │ ├── GEigsMode.h
│ │ │ ├── SelectionRule.h
│ │ │ └── SimpleRandom.h
│ └── test
│ │ ├── Eigen.cpp
│ │ ├── GenEigs.cpp
│ │ ├── GenEigsComplexShift.cpp
│ │ ├── GenEigsRealShift.cpp
│ │ ├── Makefile
│ │ ├── QR.cpp
│ │ ├── SymEigs.cpp
│ │ ├── SymEigsShift.cpp
│ │ ├── SymGEigsCholesky.cpp
│ │ ├── SymGEigsRegInv.cpp
│ │ └── catch.hpp
├── statx
│ ├── CMakeLists.txt
│ ├── LICENSE
│ ├── README.md
│ ├── libraries
│ │ └── burkardt_spec_funcs
│ │ │ ├── LICENSE
│ │ │ ├── asa103.cpp
│ │ │ ├── asa103.hpp
│ │ │ ├── asa121.cpp
│ │ │ └── asa121.hpp
│ └── statx
│ │ ├── CMakeLists.txt
│ │ ├── distributions
│ │ ├── CMakeLists.txt
│ │ ├── evd
│ │ │ ├── CMakeLists.txt
│ │ │ ├── common.h
│ │ │ ├── gev.cc
│ │ │ ├── gev.h
│ │ │ ├── gev_ceres.cc
│ │ │ ├── gev_ceres.h
│ │ │ ├── gev_mle.cc
│ │ │ ├── gev_mle.h
│ │ │ ├── gev_tests.cc
│ │ │ ├── gpd.cc
│ │ │ ├── gpd.h
│ │ │ ├── gpd_ceres.cc
│ │ │ ├── gpd_ceres.h
│ │ │ ├── gpd_mle.cc
│ │ │ ├── gpd_mle.h
│ │ │ └── gpd_tests.cc
│ │ ├── gamma.cc
│ │ ├── gamma.h
│ │ ├── gamma_tests.cc
│ │ ├── rayleigh.h
│ │ └── rayleigh_tests.cc
│ │ └── utils
│ │ ├── CMakeLists.txt
│ │ ├── common_funcs.h
│ │ ├── common_funcs_tests.cc
│ │ ├── ecdf.cc
│ │ ├── ecdf.h
│ │ └── ecdf_tests.cc
├── stlplus3
│ ├── .DS_Store
│ ├── CMakeLists.txt
│ ├── file_system.cpp
│ ├── file_system.hpp
│ ├── portability_fixes.cpp
│ ├── portability_fixes.hpp
│ ├── wildcard.cpp
│ └── wildcard.hpp
├── visual_sfm
│ ├── CMakeLists.txt
│ ├── DataInterface.h
│ ├── FeaturePoints.cpp
│ ├── FeaturePoints.h
│ ├── MatchFile.cpp
│ ├── MatchFile.h
│ ├── points.h
│ └── util.h
└── vlfeat
│ ├── CMakeLists.txt
│ └── vl
│ ├── fisher.c
│ ├── fisher.h
│ ├── float.th
│ ├── generic.c
│ ├── generic.h
│ ├── gmm.c
│ ├── gmm.h
│ ├── heap-def.h
│ ├── host.c
│ ├── host.h
│ ├── imopv.c
│ ├── imopv.h
│ ├── imopv_sse2.c
│ ├── imopv_sse2.h
│ ├── kdtree.c
│ ├── kdtree.h
│ ├── kmeans.c
│ ├── kmeans.h
│ ├── mathop.c
│ ├── mathop.h
│ ├── mathop_avx.h
│ ├── mathop_sse2.c
│ ├── mathop_sse2.h
│ ├── mser.c
│ ├── mser.h
│ ├── qsort-def.h
│ ├── random.c
│ ├── random.h
│ ├── shuffle-def.h
│ ├── sift.c
│ ├── sift.h
│ ├── vlad.c
│ └── vlad.h
├── license.txt
└── src
└── theia
├── CMakeLists.txt
├── alignment
└── alignment.h
├── image
├── descriptor
│ ├── akaze_descriptor.cc
│ ├── akaze_descriptor.h
│ ├── akaze_descriptor_test.cc
│ ├── create_descriptor_extractor.cc
│ ├── create_descriptor_extractor.h
│ ├── descriptor_extractor.cc
│ ├── descriptor_extractor.h
│ ├── sift_descriptor.cc
│ ├── sift_descriptor.h
│ └── sift_descriptor_test.cc
├── image.cc
├── image.h
├── image_cache.cc
├── image_cache.h
├── image_test.cc
└── keypoint_detector
│ ├── keypoint.h
│ ├── keypoint_detector.h
│ ├── sift_detector.cc
│ ├── sift_detector.h
│ ├── sift_detector_test.cc
│ └── sift_parameters.h
├── io
├── bundler_file_reader.cc
├── bundler_file_reader.h
├── eigen_serializable.h
├── import_nvm_file.cc
├── import_nvm_file.h
├── populate_image_sizes.cc
├── populate_image_sizes.h
├── read_1dsfm.cc
├── read_1dsfm.h
├── read_bundler_files.cc
├── read_bundler_files.h
├── read_calibration.cc
├── read_calibration.h
├── read_calibration_test.cc
├── read_keypoints_and_descriptors.cc
├── read_keypoints_and_descriptors.h
├── read_strecha_dataset.cc
├── read_strecha_dataset.h
├── reconstruction_reader.cc
├── reconstruction_reader.h
├── reconstruction_writer.cc
├── reconstruction_writer.h
├── sift_binary_file.cc
├── sift_binary_file.h
├── sift_text_file.cc
├── sift_text_file.h
├── write_bundler_files.cc
├── write_bundler_files.h
├── write_calibration.cc
├── write_calibration.h
├── write_calibration_test.cc
├── write_colmap_files.cc
├── write_colmap_files.h
├── write_keypoints_and_descriptors.cc
├── write_keypoints_and_descriptors.h
├── write_nvm_file.cc
├── write_nvm_file.h
├── write_ply_file.cc
└── write_ply_file.h
├── matching
├── brute_force_feature_matcher.cc
├── brute_force_feature_matcher.h
├── brute_force_feature_matcher_test.cc
├── cascade_hasher.cc
├── cascade_hasher.h
├── cascade_hashing_feature_matcher.cc
├── cascade_hashing_feature_matcher.h
├── cascade_hashing_feature_matcher_test.cc
├── create_feature_matcher.cc
├── create_feature_matcher.h
├── distance.h
├── distance_test.cc
├── feature_correspondence.h
├── feature_correspondence_test.cc
├── feature_matcher.cc
├── feature_matcher.h
├── feature_matcher_options.h
├── feature_matcher_utils.cc
├── feature_matcher_utils.h
├── feature_matcher_utils_test.cc
├── features_and_matches_database.h
├── fisher_vector_extractor.cc
├── fisher_vector_extractor.h
├── global_descriptor_extractor.h
├── guided_epipolar_matcher.cc
├── guided_epipolar_matcher.h
├── guided_epipolar_matcher_test.cc
├── image_pair_match.h
├── in_memory_features_and_matches_database.cc
├── in_memory_features_and_matches_database.h
├── indexed_feature_match.h
├── keypoints_and_descriptors.h
├── local_features_and_matches_database.cc
├── local_features_and_matches_database.h
├── rocksdb_features_and_matches_database.cc
├── rocksdb_features_and_matches_database.h
└── rocksdb_features_and_matches_database_test.cc
├── math
├── closed_form_polynomial_solver.cc
├── closed_form_polynomial_solver.h
├── closed_form_polynomial_solver_test.cc
├── constrained_l1_solver.cc
├── constrained_l1_solver.h
├── distribution.h
├── find_polynomial_roots_companion_matrix.cc
├── find_polynomial_roots_companion_matrix.h
├── find_polynomial_roots_companion_matrix_test.cc
├── find_polynomial_roots_jenkins_traub.cc
├── find_polynomial_roots_jenkins_traub.h
├── find_polynomial_roots_jenkins_traub_test.cc
├── graph
│ ├── connected_components.h
│ ├── connected_components_test.cc
│ ├── minimum_spanning_tree.h
│ ├── minimum_spanning_tree_test.cc
│ ├── normalized_graph_cut.h
│ ├── normalized_graph_cut_test.cc
│ ├── triplet_extractor.h
│ └── triplet_extractor_test.cc
├── histogram.h
├── l1_solver.h
├── l1_solver_test.cc
├── matrix
│ ├── gauss_jordan.h
│ ├── gauss_jordan_test.cc
│ ├── linear_operator.h
│ ├── rq_decomposition.h
│ ├── rq_decomposition_test.cc
│ ├── sparse_cholesky_llt.cc
│ ├── sparse_cholesky_llt.h
│ ├── sparse_matrix.cc
│ ├── sparse_matrix.h
│ └── spectra_linear_operator.h
├── polynomial.cc
├── polynomial.h
├── polynomial_test.cc
├── probability
│ ├── sequential_probability_ratio.cc
│ ├── sequential_probability_ratio.h
│ └── sprt_test.cc
├── qp_solver.cc
├── qp_solver.h
├── qp_solver_test.cc
├── reservoir_sampler.h
├── reservoir_sampler_test.cc
├── rotation.cc
├── rotation.h
├── rotation_test.cc
└── util.h
├── sfm
├── bundle_adjustment
│ ├── angular_epipolar_error.h
│ ├── bundle_adjust_two_views.cc
│ ├── bundle_adjust_two_views.h
│ ├── bundle_adjuster.cc
│ ├── bundle_adjuster.h
│ ├── bundle_adjustment.cc
│ ├── bundle_adjustment.h
│ ├── create_loss_function.cc
│ ├── create_loss_function.h
│ ├── optimize_relative_position_with_known_rotation.cc
│ ├── optimize_relative_position_with_known_rotation.h
│ ├── optimize_relative_position_with_known_rotation_test.cc
│ ├── orthogonal_vector_error.h
│ └── unit_norm_three_vector_parameterization.h
├── camera
│ ├── camera.cc
│ ├── camera.h
│ ├── camera_intrinsics_model.cc
│ ├── camera_intrinsics_model.h
│ ├── camera_intrinsics_model_type.h
│ ├── camera_test.cc
│ ├── create_reprojection_error_cost_function.h
│ ├── division_undistortion_camera_model.cc
│ ├── division_undistortion_camera_model.h
│ ├── division_undistortion_camera_model_test.cc
│ ├── fisheye_camera_model.cc
│ ├── fisheye_camera_model.h
│ ├── fisheye_camera_model_test.cc
│ ├── fov_camera_model.cc
│ ├── fov_camera_model.h
│ ├── fov_camera_model_test.cc
│ ├── pinhole_camera_model.cc
│ ├── pinhole_camera_model.h
│ ├── pinhole_camera_model_test.cc
│ ├── pinhole_radial_tangential_camera_model.cc
│ ├── pinhole_radial_tangential_camera_model.h
│ ├── pinhole_radial_tangential_camera_model_test.cc
│ ├── projection_matrix_utils.cc
│ ├── projection_matrix_utils.h
│ ├── projection_matrix_utils_test.cc
│ └── reprojection_error.h
├── camera_intrinsics_prior.h
├── colorize_reconstruction.cc
├── colorize_reconstruction.h
├── create_and_initialize_ransac_variant.h
├── estimate_track.cc
├── estimate_track.h
├── estimate_twoview_info.cc
├── estimate_twoview_info.h
├── estimators
│ ├── camera_and_feature_correspondence_2d_3d.h
│ ├── estimate_absolute_pose_with_known_orientation.cc
│ ├── estimate_absolute_pose_with_known_orientation.h
│ ├── estimate_absolute_pose_with_known_orientation_test.cc
│ ├── estimate_calibrated_absolute_pose.cc
│ ├── estimate_calibrated_absolute_pose.h
│ ├── estimate_calibrated_absolute_pose_test.cc
│ ├── estimate_dominant_plane_from_points.cc
│ ├── estimate_dominant_plane_from_points.h
│ ├── estimate_dominant_plane_from_points_test.cc
│ ├── estimate_essential_matrix.cc
│ ├── estimate_essential_matrix.h
│ ├── estimate_essential_matrix_test.cc
│ ├── estimate_fundamental_matrix.cc
│ ├── estimate_fundamental_matrix.h
│ ├── estimate_fundamental_matrix_test.cc
│ ├── estimate_homography.cc
│ ├── estimate_homography.h
│ ├── estimate_homography_test.cc
│ ├── estimate_radial_distortion_homography.cc
│ ├── estimate_radial_distortion_homography.h
│ ├── estimate_radial_distortion_homography_test.cc
│ ├── estimate_relative_pose.cc
│ ├── estimate_relative_pose.h
│ ├── estimate_relative_pose_test.cc
│ ├── estimate_relative_pose_with_known_orientation.cc
│ ├── estimate_relative_pose_with_known_orientation.h
│ ├── estimate_relative_pose_with_known_orientation_test.cc
│ ├── estimate_rigid_transformation_2d_3d.cc
│ ├── estimate_rigid_transformation_2d_3d.h
│ ├── estimate_rigid_transformation_2d_3d_test.cc
│ ├── estimate_similarity_transformation_2d_3d.cc
│ ├── estimate_similarity_transformation_2d_3d.h
│ ├── estimate_similarity_transformation_2d_3d_test.cc
│ ├── estimate_triangulation.cc
│ ├── estimate_triangulation.h
│ ├── estimate_triangulation_test.cc
│ ├── estimate_uncalibrated_absolute_pose.cc
│ ├── estimate_uncalibrated_absolute_pose.h
│ ├── estimate_uncalibrated_absolute_pose_test.cc
│ ├── estimate_uncalibrated_relative_pose.cc
│ ├── estimate_uncalibrated_relative_pose.h
│ ├── estimate_uncalibrated_relative_pose_test.cc
│ └── feature_correspondence_2d_3d.h
├── exif_reader.cc
├── exif_reader.h
├── exif_reader_test.cc
├── extract_maximally_parallel_rigid_subgraph.cc
├── extract_maximally_parallel_rigid_subgraph.h
├── extract_maximally_parallel_rigid_subgraph_test.cc
├── feature.h
├── feature_extractor.cc
├── feature_extractor.h
├── feature_extractor_and_matcher.cc
├── feature_extractor_and_matcher.h
├── filter_view_graph_cycles_by_rotation.cc
├── filter_view_graph_cycles_by_rotation.h
├── filter_view_graph_cycles_by_rotation_test.cc
├── filter_view_pairs_from_orientation.cc
├── filter_view_pairs_from_orientation.h
├── filter_view_pairs_from_orientation_test.cc
├── filter_view_pairs_from_relative_translation.cc
├── filter_view_pairs_from_relative_translation.h
├── filter_view_pairs_from_relative_translation_test.cc
├── find_common_tracks_in_views.cc
├── find_common_tracks_in_views.h
├── find_common_tracks_in_views_test.cc
├── find_common_views_by_name.cc
├── find_common_views_by_name.h
├── find_common_views_by_name_test.cc
├── global_pose_estimation
│ ├── compute_triplet_baseline_ratios.cc
│ ├── compute_triplet_baseline_ratios.h
│ ├── compute_triplet_baseline_ratios_test.cc
│ ├── least_unsquared_deviation_position_estimator.cc
│ ├── least_unsquared_deviation_position_estimator.h
│ ├── least_unsquared_deviation_position_estimator_test.cc
│ ├── linear_position_estimator.cc
│ ├── linear_position_estimator.h
│ ├── linear_position_estimator_test.cc
│ ├── linear_rotation_estimator.cc
│ ├── linear_rotation_estimator.h
│ ├── linear_rotation_estimator_test.cc
│ ├── nonlinear_position_estimator.cc
│ ├── nonlinear_position_estimator.h
│ ├── nonlinear_position_estimator_test.cc
│ ├── nonlinear_rotation_estimator.cc
│ ├── nonlinear_rotation_estimator.h
│ ├── pairwise_rotation_error.cc
│ ├── pairwise_rotation_error.h
│ ├── pairwise_rotation_error_test.cc
│ ├── pairwise_translation_and_scale_error.cc
│ ├── pairwise_translation_and_scale_error.h
│ ├── pairwise_translation_and_scale_error_test.cc
│ ├── pairwise_translation_error.cc
│ ├── pairwise_translation_error.h
│ ├── pairwise_translation_error_test.cc
│ ├── position_estimator.h
│ ├── robust_rotation_estimator.cc
│ ├── robust_rotation_estimator.h
│ ├── robust_rotation_estimator_test.cc
│ └── rotation_estimator.h
├── global_reconstruction_estimator.cc
├── global_reconstruction_estimator.h
├── gps_converter.cc
├── gps_converter.h
├── gps_converter_test.cc
├── hybrid_reconstruction_estimator.cc
├── hybrid_reconstruction_estimator.h
├── hybrid_reconstruction_estimator_test.cc
├── incremental_reconstruction_estimator.cc
├── incremental_reconstruction_estimator.h
├── incremental_reconstruction_estimator_test.cc
├── localize_view_to_reconstruction.cc
├── localize_view_to_reconstruction.h
├── pose
│ ├── build_upnp_action_matrix.cc
│ ├── build_upnp_action_matrix.h
│ ├── build_upnp_action_matrix_test.cc
│ ├── build_upnp_action_matrix_using_symmetry.cc
│ ├── build_upnp_action_matrix_using_symmetry.h
│ ├── build_upnp_action_matrix_using_symmetry_test.cc
│ ├── dls_impl.cc
│ ├── dls_impl.h
│ ├── dls_pnp.cc
│ ├── dls_pnp.h
│ ├── dls_pnp_test.cc
│ ├── eight_point_fundamental_matrix.cc
│ ├── eight_point_fundamental_matrix.h
│ ├── eight_point_fundamental_matrix_test.cc
│ ├── essential_matrix_utils.cc
│ ├── essential_matrix_utils.h
│ ├── essential_matrix_utils_test.cc
│ ├── five_point_focal_length_radial_distortion.cc
│ ├── five_point_focal_length_radial_distortion.h
│ ├── five_point_focal_length_radial_distortion_test.cc
│ ├── five_point_relative_pose.cc
│ ├── five_point_relative_pose.h
│ ├── five_point_relative_pose_test.cc
│ ├── four_point_focal_length.cc
│ ├── four_point_focal_length.h
│ ├── four_point_focal_length_helper.cc
│ ├── four_point_focal_length_helper.h
│ ├── four_point_focal_length_radial_distortion.cc
│ ├── four_point_focal_length_radial_distortion.h
│ ├── four_point_focal_length_radial_distortion_helper.cc
│ ├── four_point_focal_length_radial_distortion_helper.h
│ ├── four_point_focal_length_radial_distortion_test.cc
│ ├── four_point_focal_length_test.cc
│ ├── four_point_homography.cc
│ ├── four_point_homography.h
│ ├── four_point_homography_test.cc
│ ├── four_point_relative_pose_partial_rotation.cc
│ ├── four_point_relative_pose_partial_rotation.h
│ ├── four_point_relative_pose_partial_rotation_test.cc
│ ├── fundamental_matrix_util.cc
│ ├── fundamental_matrix_util.h
│ ├── fundamental_matrix_util_test.cc
│ ├── perspective_three_point.cc
│ ├── perspective_three_point.h
│ ├── perspective_three_point_test.cc
│ ├── position_from_two_rays.cc
│ ├── position_from_two_rays.h
│ ├── position_from_two_rays_test.cc
│ ├── relative_pose_from_two_points_with_known_rotation.cc
│ ├── relative_pose_from_two_points_with_known_rotation.h
│ ├── relative_pose_from_two_points_with_known_rotation_test.cc
│ ├── seven_point_fundamental_matrix.cc
│ ├── seven_point_fundamental_matrix.h
│ ├── seven_point_fundamental_matrix_test.cc
│ ├── sim_transform_partial_rotation.cc
│ ├── sim_transform_partial_rotation.h
│ ├── sim_transform_partial_rotation_test.cc
│ ├── six_point_radial_distortion_homography.cc
│ ├── six_point_radial_distortion_homography.h
│ ├── six_point_radial_distortion_homography_test.cc
│ ├── test_util.cc
│ ├── test_util.h
│ ├── three_point_relative_pose_partial_rotation.cc
│ ├── three_point_relative_pose_partial_rotation.h
│ ├── three_point_relative_pose_partial_rotation_test.cc
│ ├── two_point_pose_partial_rotation.cc
│ ├── two_point_pose_partial_rotation.h
│ ├── two_point_pose_partial_rotation_test.cc
│ ├── upnp.cc
│ ├── upnp.h
│ ├── upnp_test.cc
│ ├── util.cc
│ └── util.h
├── pose_error.h
├── reconstruction.cc
├── reconstruction.h
├── reconstruction_builder.cc
├── reconstruction_builder.h
├── reconstruction_estimator.cc
├── reconstruction_estimator.h
├── reconstruction_estimator_options.h
├── reconstruction_estimator_utils.cc
├── reconstruction_estimator_utils.h
├── reconstruction_test.cc
├── rigid_transformation.h
├── select_good_tracks_for_bundle_adjustment.cc
├── select_good_tracks_for_bundle_adjustment.h
├── set_camera_intrinsics_from_priors.cc
├── set_camera_intrinsics_from_priors.h
├── set_outlier_tracks_to_unestimated.cc
├── set_outlier_tracks_to_unestimated.h
├── similarity_transformation.h
├── track.cc
├── track.h
├── track_builder.cc
├── track_builder.h
├── track_builder_test.cc
├── track_test.cc
├── transformation
│ ├── align_point_clouds.cc
│ ├── align_point_clouds.h
│ ├── align_point_clouds_test.cc
│ ├── align_reconstructions.cc
│ ├── align_reconstructions.h
│ ├── align_reconstructions_test.cc
│ ├── align_rotations.cc
│ ├── align_rotations.h
│ ├── align_rotations_test.cc
│ ├── gdls_similarity_transform.cc
│ ├── gdls_similarity_transform.h
│ ├── gdls_similarity_transform_test.cc
│ ├── transform_reconstruction.cc
│ └── transform_reconstruction.h
├── triangulation
│ ├── triangulation.cc
│ ├── triangulation.h
│ └── triangulation_test.cc
├── two_view_match_geometric_verification.cc
├── two_view_match_geometric_verification.h
├── twoview_info.cc
├── twoview_info.h
├── twoview_info_test.cc
├── types.h
├── undistort_image.cc
├── undistort_image.h
├── view.cc
├── view.h
├── view_graph
│ ├── orientations_from_maximum_spanning_tree.cc
│ ├── orientations_from_maximum_spanning_tree.h
│ ├── orientations_from_maximum_spanning_tree_test.cc
│ ├── remove_disconnected_view_pairs.cc
│ ├── remove_disconnected_view_pairs.h
│ ├── remove_disconnected_view_pairs_test.cc
│ ├── view_graph.cc
│ ├── view_graph.h
│ └── view_graph_test.cc
├── view_test.cc
├── view_triplet.h
├── visibility_pyramid.cc
└── visibility_pyramid.h
├── solvers
├── estimator.h
├── evsac.h
├── evsac_sampler.h
├── evsac_test.cc
├── exhaustive_ransac.h
├── exhaustive_ransac_test.cc
├── exhaustive_sampler.cc
├── exhaustive_sampler.h
├── exhaustive_sampler_test.cc
├── inlier_support.h
├── lmed.h
├── lmed_quality_measurement.h
├── lmed_test.cc
├── mle_quality_measurement.h
├── prosac.h
├── prosac_sampler.cc
├── prosac_sampler.h
├── prosac_test.cc
├── quality_measurement.h
├── random_sampler.cc
├── random_sampler.h
├── random_sampler_test.cc
├── ransac.h
├── ransac_test.cc
├── sample_consensus_estimator.h
└── sampler.h
├── test
├── test_main.cc
└── test_utils.h
└── util
├── enable_enum_bitmask_operators.h
├── filesystem.cc
├── filesystem.h
├── hash.h
├── lru_cache.h
├── lru_cache_test.cc
├── map_util.h
├── mutable_priority_queue.h
├── mutable_priority_queue_test.cc
├── random.cc
├── random.h
├── string.h
├── stringprintf.cc
├── stringprintf.h
├── threadpool.cc
├── threadpool.h
├── timer.cc
├── timer.h
└── util.h
/.clang-format:
--------------------------------------------------------------------------------
1 | ---
2 | Language: Cpp
3 | # BasedOnStyle: Google
4 | AccessModifierOffset: -1
5 | AlignAfterOpenBracket: true
6 | AlignConsecutiveAssignments: false
7 | AlignEscapedNewlinesLeft: true
8 | AlignOperands: true
9 | AlignTrailingComments: true
10 | AllowAllParametersOfDeclarationOnNextLine: true
11 | AllowShortBlocksOnASingleLine: false
12 | AllowShortCaseLabelsOnASingleLine: false
13 | AllowShortFunctionsOnASingleLine: All
14 | AllowShortIfStatementsOnASingleLine: true
15 | AllowShortLoopsOnASingleLine: true
16 | AlwaysBreakAfterDefinitionReturnType: None
17 | AlwaysBreakBeforeMultilineStrings: true
18 | AlwaysBreakTemplateDeclarations: true
19 | BinPackArguments: false
20 | BinPackParameters: false
21 | BreakBeforeBinaryOperators: None
22 | BreakBeforeBraces: Attach
23 | BreakBeforeTernaryOperators: true
24 | BreakConstructorInitializersBeforeComma: false
25 | ColumnLimit: 80
26 | CommentPragmas: '^ IWYU pragma:'
27 | ConstructorInitializerAllOnOneLineOrOnePerLine: true
28 | ConstructorInitializerIndentWidth: 4
29 | ContinuationIndentWidth: 4
30 | Cpp11BracedListStyle: true
31 | DerivePointerAlignment: false
32 | DisableFormat: false
33 | ExperimentalAutoDetectBinPacking: false
34 | ForEachMacros: [ foreach, Q_FOREACH, BOOST_FOREACH ]
35 | IndentCaseLabels: true
36 | IndentWidth: 2
37 | IndentWrappedFunctionNames: false
38 | KeepEmptyLinesAtTheStartOfBlocks: false
39 | MacroBlockBegin: ''
40 | MacroBlockEnd: ''
41 | MaxEmptyLinesToKeep: 1
42 | NamespaceIndentation: None
43 | ObjCBlockIndentWidth: 2
44 | ObjCSpaceAfterProperty: false
45 | ObjCSpaceBeforeProtocolList: false
46 | PenaltyBreakBeforeFirstCallParameter: 1
47 | PenaltyBreakComment: 300
48 | PenaltyBreakFirstLessLess: 120
49 | PenaltyBreakString: 1000
50 | PenaltyExcessCharacter: 1000000
51 | PenaltyReturnTypeOnItsOwnLine: 200
52 | PointerAlignment: Left
53 | SpaceAfterCStyleCast: false
54 | SpaceBeforeAssignmentOperators: true
55 | SpaceBeforeParens: ControlStatements
56 | SpaceInEmptyParentheses: false
57 | SpacesBeforeTrailingComments: 2
58 | SpacesInAngles: false
59 | SpacesInContainerLiterals: true
60 | SpacesInCStyleCastParentheses: false
61 | SpacesInParentheses: false
62 | SpacesInSquareBrackets: false
63 | Standard: Auto
64 | TabWidth: 8
65 | UseTab: Never
66 | ...
67 |
--------------------------------------------------------------------------------
/.gitignore:
--------------------------------------------------------------------------------
1 | build/*
2 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | Copyright 2015-2016 Chris Sweeney (sweeney.chris.m@gmail.com)
2 | UC Santa Barbara
3 |
4 | What is this library?
5 | ---------------------
6 |
7 | Theia is an end-to-end structure-from-motion library that was created by Chris
8 | Sweeney. It is designed to be very efficient, scalable, and accurate. All
9 | steps of the pipeline are designed to be modular so that code is easy to read
10 | and easy to extend.
11 |
12 | Please see the Theia website for detailed information, including instructions
13 | for building Theia and full documentation of the library. The website is
14 | currently located at http://www.theia-sfm.org
15 |
16 | Contact Information
17 | -------------------
18 |
19 | Questions, comments, and bug reports can be sent to the Theia mailing list:
20 | theia-vision-library@googlegroups.com
21 |
22 | Citing this library
23 | -------------------
24 |
25 | If you are using this library for academic research or publications we ask that
26 | you please cite this library as:
27 |
28 | @misc{theia-manual,
29 | author = {Chris Sweeney},
30 | title = {Theia Multiview Geometry Library: Tutorial \& Reference},
31 | howpublished = "\url{http://theia-sfm.org}",
32 | }
33 |
--------------------------------------------------------------------------------
/data/camera_sensor_database_license.txt:
--------------------------------------------------------------------------------
1 | Copyright (c) 2014 Camera Sensor Size Database authors.
2 |
3 | Permission is hereby granted, free of charge, to any person obtaining a copy
4 | of this software and associated documentation files (the "Software"), to
5 | deal in the Software without restriction, including without limitation the
6 | rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
7 | sell copies of the Software, and to permit persons to whom the Software is
8 | furnished to do so, subject to the following conditions:
9 |
10 | The above copyright notice and this permission notice shall be included in
11 | all copies or substantial portions of the Software.
12 |
13 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
14 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
15 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
16 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
17 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
18 | FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
19 | IN THE SOFTWARE.
20 |
--------------------------------------------------------------------------------
/data/image/.DS_Store:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/sweeneychris/TheiaSfM/d2112f15aa69a53dda68fe6c4bd4b0f1e2fe915b/data/image/.DS_Store
--------------------------------------------------------------------------------
/data/image/descriptor/img1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/sweeneychris/TheiaSfM/d2112f15aa69a53dda68fe6c4bd4b0f1e2fe915b/data/image/descriptor/img1.png
--------------------------------------------------------------------------------
/data/image/exif.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/sweeneychris/TheiaSfM/d2112f15aa69a53dda68fe6c4bd4b0f1e2fe915b/data/image/exif.jpg
--------------------------------------------------------------------------------
/data/image/gps_exif.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/sweeneychris/TheiaSfM/d2112f15aa69a53dda68fe6c4bd4b0f1e2fe915b/data/image/gps_exif.jpg
--------------------------------------------------------------------------------
/data/image/img1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/sweeneychris/TheiaSfM/d2112f15aa69a53dda68fe6c4bd4b0f1e2fe915b/data/image/img1.png
--------------------------------------------------------------------------------
/data/image/img2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/sweeneychris/TheiaSfM/d2112f15aa69a53dda68fe6c4bd4b0f1e2fe915b/data/image/img2.png
--------------------------------------------------------------------------------
/data/image/img3.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/sweeneychris/TheiaSfM/d2112f15aa69a53dda68fe6c4bd4b0f1e2fe915b/data/image/img3.png
--------------------------------------------------------------------------------
/data/image/img4.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/sweeneychris/TheiaSfM/d2112f15aa69a53dda68fe6c4bd4b0f1e2fe915b/data/image/img4.png
--------------------------------------------------------------------------------
/data/image/img5.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/sweeneychris/TheiaSfM/d2112f15aa69a53dda68fe6c4bd4b0f1e2fe915b/data/image/img5.png
--------------------------------------------------------------------------------
/data/image/img6.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/sweeneychris/TheiaSfM/d2112f15aa69a53dda68fe6c4bd4b0f1e2fe915b/data/image/img6.png
--------------------------------------------------------------------------------
/data/image/keypoint_detector/img1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/sweeneychris/TheiaSfM/d2112f15aa69a53dda68fe6c4bd4b0f1e2fe915b/data/image/keypoint_detector/img1.png
--------------------------------------------------------------------------------
/data/image/test1.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/sweeneychris/TheiaSfM/d2112f15aa69a53dda68fe6c4bd4b0f1e2fe915b/data/image/test1.jpg
--------------------------------------------------------------------------------
/data/io/calibration_test.json:
--------------------------------------------------------------------------------
1 | {"priors" : [
2 | {"CameraIntrinsicsPrior": {
3 | "image_name" : "view_1.jpg",
4 | "focal_length" : 300,
5 | "width" : 480,
6 | "height" : 480,
7 | "principal_point" : [240, 240],
8 | "aspect_ratio" : 1.0,
9 | "skew" : 0.0,
10 | "radial_distortion_coeffs" : [0.1, 0.1],
11 | "camera_intrinsics_type" : "PINHOLE"
12 | }},
13 | {"CameraIntrinsicsPrior": {
14 | "image_name" : "view_2.jpg",
15 | "focal_length" : 350,
16 | "principal_point" : [240, 240],
17 | "aspect_ratio" : 1.5,
18 | "skew" : 0.25,
19 | "radial_distortion_coeffs" : [0.1],
20 | "camera_intrinsics_type" : "PINHOLE"
21 | }},
22 | {"CameraIntrinsicsPrior": {
23 | "image_name" : "view_3.jpg",
24 | "principal_point" : [240, 240],
25 | "camera_intrinsics_type" : "PINHOLE"
26 | }},
27 | {"CameraIntrinsicsPrior": {
28 | "image_name" : "view_4.jpg",
29 | "focal_length" : 300,
30 | "width" : 480,
31 | "height" : 480,
32 | "principal_point" : [240, 240],
33 | "aspect_ratio" : 1.0,
34 | "skew" : 0.0,
35 | "radial_distortion_coeffs" : [0.1, 0.1, 0.01],
36 | "tangential_distortion_coeffs" : [0.05, 0.05],
37 | "orientation" : [0.1, 0.1, 0.1],
38 | "position" : [1, 2.0, -3.0],
39 | "latitude" : 128.0,
40 | "longitude" : 256.0,
41 | "altitude" : 512.0,
42 | "camera_intrinsics_type" : "PINHOLE_RADIAL_TANGENTIAL"
43 | }}
44 | ]}
45 |
--------------------------------------------------------------------------------
/data/sfm/fountain11.bin:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/sweeneychris/TheiaSfM/d2112f15aa69a53dda68fe6c4bd4b0f1e2fe915b/data/sfm/fountain11.bin
--------------------------------------------------------------------------------
/data/sfm/fountain11_matches.bin:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/sweeneychris/TheiaSfM/d2112f15aa69a53dda68fe6c4bd4b0f1e2fe915b/data/sfm/fountain11_matches.bin
--------------------------------------------------------------------------------
/data/sfm/gt_fountain11.bin:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/sweeneychris/TheiaSfM/d2112f15aa69a53dda68fe6c4bd4b0f1e2fe915b/data/sfm/gt_fountain11.bin
--------------------------------------------------------------------------------
/docs/CMakeLists.txt:
--------------------------------------------------------------------------------
1 | # Ceres Solver - A fast non-linear least squares minimizer
2 | # Copyright 2013 Google Inc. All rights reserved.
3 | # http://code.google.com/p/ceres-solver/
4 | #
5 | # Redistribution and use in source and binary forms, with or without
6 | # modification, are permitted provided that the following conditions are met:
7 | #
8 | # * Redistributions of source code must retain the above copyright notice,
9 | # this list of conditions and the following disclaimer.
10 | # * Redistributions in binary form must reproduce the above copyright notice,
11 | # this list of conditions and the following disclaimer in the documentation
12 | # and/or other materials provided with the distribution.
13 | # * Neither the name of Google Inc. nor the names of its contributors may be
14 | # used to endorse or promote products derived from this software without
15 | # specific prior written permission.
16 | #
17 | # THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
18 | # AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
19 | # IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
20 | # ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
21 | # LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
22 | # CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
23 | # SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
24 | # INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
25 | # CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
26 | # ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
27 | # POSSIBILITY OF SUCH DAMAGE.
28 |
29 | ADD_SUBDIRECTORY(source)
30 |
--------------------------------------------------------------------------------
/docs/source/CMakeLists.txt:
--------------------------------------------------------------------------------
1 | FIND_PACKAGE(Sphinx REQUIRED)
2 |
3 | # HTML output directory
4 | SET(SPHINX_HTML_DIR "${CMAKE_BINARY_DIR}/docs/html")
5 |
6 | # Install documentation
7 | INSTALL(DIRECTORY ${SPHINX_HTML_DIR}
8 | DESTINATION share/doc/theia
9 | COMPONENT Doc
10 | PATTERN "${SPHINX_HTML_DIR}/*")
11 |
12 | # Building using 'make_docs.py' python script
13 | ADD_CUSTOM_TARGET(theia_docs ALL
14 | python
15 | "${CMAKE_SOURCE_DIR}/docs/make_docs.py"
16 | "${CMAKE_SOURCE_DIR}"
17 | "${CMAKE_BINARY_DIR}/docs"
18 | "${SPHINX_EXECUTABLE}"
19 | COMMENT "Building HTML documentation with Sphinx")
20 |
--------------------------------------------------------------------------------
/docs/source/_static/ajax-loader.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/sweeneychris/TheiaSfM/d2112f15aa69a53dda68fe6c4bd4b0f1e2fe915b/docs/source/_static/ajax-loader.gif
--------------------------------------------------------------------------------
/docs/source/_static/comment-bright.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/sweeneychris/TheiaSfM/d2112f15aa69a53dda68fe6c4bd4b0f1e2fe915b/docs/source/_static/comment-bright.png
--------------------------------------------------------------------------------
/docs/source/_static/comment-close.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/sweeneychris/TheiaSfM/d2112f15aa69a53dda68fe6c4bd4b0f1e2fe915b/docs/source/_static/comment-close.png
--------------------------------------------------------------------------------
/docs/source/_static/comment.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/sweeneychris/TheiaSfM/d2112f15aa69a53dda68fe6c4bd4b0f1e2fe915b/docs/source/_static/comment.png
--------------------------------------------------------------------------------
/docs/source/_static/down-pressed.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/sweeneychris/TheiaSfM/d2112f15aa69a53dda68fe6c4bd4b0f1e2fe915b/docs/source/_static/down-pressed.png
--------------------------------------------------------------------------------
/docs/source/_static/down.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/sweeneychris/TheiaSfM/d2112f15aa69a53dda68fe6c4bd4b0f1e2fe915b/docs/source/_static/down.png
--------------------------------------------------------------------------------
/docs/source/_static/file.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/sweeneychris/TheiaSfM/d2112f15aa69a53dda68fe6c4bd4b0f1e2fe915b/docs/source/_static/file.png
--------------------------------------------------------------------------------
/docs/source/_static/minus.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/sweeneychris/TheiaSfM/d2112f15aa69a53dda68fe6c4bd4b0f1e2fe915b/docs/source/_static/minus.png
--------------------------------------------------------------------------------
/docs/source/_static/plus.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/sweeneychris/TheiaSfM/d2112f15aa69a53dda68fe6c4bd4b0f1e2fe915b/docs/source/_static/plus.png
--------------------------------------------------------------------------------
/docs/source/_static/theia_logo.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/sweeneychris/TheiaSfM/d2112f15aa69a53dda68fe6c4bd4b0f1e2fe915b/docs/source/_static/theia_logo.png
--------------------------------------------------------------------------------
/docs/source/_static/up-pressed.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/sweeneychris/TheiaSfM/d2112f15aa69a53dda68fe6c4bd4b0f1e2fe915b/docs/source/_static/up-pressed.png
--------------------------------------------------------------------------------
/docs/source/_static/up.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/sweeneychris/TheiaSfM/d2112f15aa69a53dda68fe6c4bd4b0f1e2fe915b/docs/source/_static/up.png
--------------------------------------------------------------------------------
/docs/source/_templates/layout.html:
--------------------------------------------------------------------------------
1 | {% extends "!layout.html" %}
2 |
3 | {% block footer %}
4 | {{ super() }}
5 |
6 |
16 | {% endblock %}
17 |
--------------------------------------------------------------------------------
/docs/source/api.rst:
--------------------------------------------------------------------------------
1 | .. _chapter-api:
2 |
3 | =============
4 | API Reference
5 | =============
6 |
7 | .. toctree::
8 | :maxdepth: 3
9 |
10 | image
11 | features
12 | ransac
13 | pose
14 | math
15 | cameras
16 | sfm
17 |
--------------------------------------------------------------------------------
/docs/source/global_linear_position_estimation.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/sweeneychris/TheiaSfM/d2112f15aa69a53dda68fe6c4bd4b0f1e2fe915b/docs/source/global_linear_position_estimation.png
--------------------------------------------------------------------------------
/docs/source/global_sfm.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/sweeneychris/TheiaSfM/d2112f15aa69a53dda68fe6c4bd4b0f1e2fe915b/docs/source/global_sfm.png
--------------------------------------------------------------------------------
/docs/source/incremental_sfm.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/sweeneychris/TheiaSfM/d2112f15aa69a53dda68fe6c4bd4b0f1e2fe915b/docs/source/incremental_sfm.png
--------------------------------------------------------------------------------
/docs/source/license.rst:
--------------------------------------------------------------------------------
1 | =======
2 | License
3 | =======
4 |
5 | Theia is licensed under the New BSD license, whose terms are as follows.
6 |
7 | Copyright © 2013, 2014. The Regents of the University of California (Regents). All
8 | rights reserved.
9 |
10 | 1. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:
11 |
12 | 2. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.
13 |
14 | 3. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.
15 |
16 | Neither the name of The Regents or the University of California nor the names of
17 | its contributors may be used to endorse or promote products derived from this
18 | software without specific prior written permission.
19 |
20 | THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
21 | ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
22 | WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
23 | DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR
24 | ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
25 | (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
26 | LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
27 | ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
28 | (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
29 | SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
30 |
31 | Citation
32 | ========
33 |
34 | If you use Theia for an academic publication, please cite this
35 | manual. e.g., ::
36 |
37 | @misc{theia-manual,
38 | author = {Chris Sweeney},
39 | title = {Theia Multiview Geometry Library: Tutorial \& Reference},
40 | howpublished = "\url{http://theia-sfm.org}",
41 | }
42 |
--------------------------------------------------------------------------------
/docs/source/pisa.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/sweeneychris/TheiaSfM/d2112f15aa69a53dda68fe6c4bd4b0f1e2fe915b/docs/source/pisa.png
--------------------------------------------------------------------------------
/libraries/CMakeLists.txt:
--------------------------------------------------------------------------------
1 | if (${BUILD_TESTING})
2 | add_subdirectory(gtest)
3 | endif (${BUILD_TESTING})
4 |
5 | # AKAZE feature extractor.
6 | add_subdirectory(akaze)
7 |
8 | # Cereal for portable IO.
9 | add_subdirectory(cereal)
10 |
11 | # Flann for fast approximate nearest neighbor searches.
12 | add_subdirectory(flann)
13 |
14 | # Add Optimo.
15 | add_subdirectory(optimo)
16 |
17 | # Add Statx.
18 | add_subdirectory(statx)
19 |
20 | # STLPlus for filepath tools.
21 | add_subdirectory(stlplus3)
22 |
23 | # Add VLFeat.
24 | add_subdirectory(vlfeat)
25 |
26 | # Add VisualSfM files.
27 | add_subdirectory(visual_sfm)
--------------------------------------------------------------------------------
/libraries/akaze/LICENSE:
--------------------------------------------------------------------------------
1 | Copyright (c) 2014, Chris Sweeney, Pablo Fernandez Alcantarilla, Jesus Nuevo
2 | All Rights Reserved
3 |
4 | Redistribution and use in source and binary forms, with or without modification,
5 | are permitted provided that the following conditions are met:
6 |
7 | * Redistributions of source code must retain the above copyright notice,
8 | this list of conditions and the following disclaimer.
9 |
10 | * Redistributions in binary form must reproduce the above copyright notice,
11 | this list of conditions and the following disclaimer in the documentation
12 | and/or other materials provided with the distribution.
13 |
14 | * Neither the name of the copyright holders nor the names of its contributors
15 | may be used to endorse or promote products derived from this software without
16 | specific prior written permission.
17 |
18 | THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY
19 | EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
20 | OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT
21 | SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
22 | INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED
23 | TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR
24 | BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
25 | CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY
26 | WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
27 |
--------------------------------------------------------------------------------
/libraries/akaze/cimg/Licence_CeCILL-C_V1-en.txt:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/sweeneychris/TheiaSfM/d2112f15aa69a53dda68fe6c4bd4b0f1e2fe915b/libraries/akaze/cimg/Licence_CeCILL-C_V1-en.txt
--------------------------------------------------------------------------------
/libraries/akaze/cimg/Licence_CeCILL_V2-en.txt:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/sweeneychris/TheiaSfM/d2112f15aa69a53dda68fe6c4bd4b0f1e2fe915b/libraries/akaze/cimg/Licence_CeCILL_V2-en.txt
--------------------------------------------------------------------------------
/libraries/akaze/cimg/cmake-modules/FindBOARD.cmake:
--------------------------------------------------------------------------------
1 | # - Find BOARD
2 | # Find the native BOARD includes and library
3 | # This module defines
4 | # BOARD_INCLUDE_DIR, where to find jpeglib.h, etc.
5 | # BOARD_LIBRARIES, the libraries needed to use BOARD.
6 | # BOARD_FOUND, If false, do not try to use BOARD.
7 | # also defined, but not for general use are
8 | # BOARD_LIBRARY, where to find the BOARD library.
9 |
10 | FIND_PATH(BOARD_INCLUDE_DIR board.h
11 | /usr/local/include
12 | /usr/include
13 | )
14 |
15 | SET(BOARD_NAMES ${BOARD_NAMES} board)
16 | FIND_LIBRARY(BOARD_LIBRARY
17 | NAMES ${BOARD_NAMES}
18 | PATHS /usr/lib /usr/local/lib
19 | )
20 |
21 | IF (BOARD_LIBRARY AND BOARD_INCLUDE_DIR)
22 | SET(BOARD_LIBRARIES ${BOARD_LIBRARY})
23 | SET(BOARD_FOUND "YES")
24 | ELSE (BOARD_LIBRARY AND BOARD_INCLUDE_DIR)
25 | SET(BOARD_FOUND "NO")
26 | ENDIF (BOARD_LIBRARY AND BOARD_INCLUDE_DIR)
27 |
28 |
29 | IF (BOARD_FOUND)
30 | IF (NOT BOARD_FIND_QUIETLY)
31 | MESSAGE(STATUS "Found BOARD: ${BOARD_LIBRARIES}")
32 | ENDIF (NOT BOARD_FIND_QUIETLY)
33 | ELSE (BOARD_FOUND)
34 | IF (BOARD_FIND_REQUIRED)
35 | MESSAGE(FATAL_ERROR "Could not find BOARD library")
36 | ENDIF (BOARD_FIND_REQUIRED)
37 | ENDIF (BOARD_FOUND)
38 |
39 | # Deprecated declarations.
40 | SET (NATIVE_BOARD_INCLUDE_PATH ${BOARD_INCLUDE_DIR} )
41 | GET_FILENAME_COMPONENT (NATIVE_BOARD_LIB_PATH ${BOARD_LIBRARY} PATH)
42 |
43 | MARK_AS_ADVANCED(
44 | BOARD_LIBRARY
45 | BOARD_INCLUDE_DIR
46 | )
47 |
--------------------------------------------------------------------------------
/libraries/akaze/cimg/cmake-modules/FindEZMINC.cmake:
--------------------------------------------------------------------------------
1 | # FindEZMINC.cmake module
2 |
3 | # Find the native MINC includes and library
4 | # This module defines
5 | # EZMINC_INCLUDE_DIR, where to find jpeglib.h, etc.
6 | # EZMINC_LIBRARIES, the libraries needed to use EZMINC.
7 | # EZMINC_FOUND, If false, do not try to use EZMINC.
8 | # also defined, but not for general use are
9 | # EZMINC_LIBRARY, where to find the MINC library.
10 |
11 |
12 | FIND_PATH(EZMINC_INCLUDE_DIR minc_1_rw.h /usr/include /usr/local/include /usr/local/bic/include /opt/minc-toolkit/include)
13 | FIND_LIBRARY(EZMINC_minc_io_LIBRARY NAMES minc_io HINTS /usr/lib /usr/local/lib /usr/local/bic/lib /opt/minc-toolkit/lib)
14 |
15 |
16 | IF (EZMINC_INCLUDE_DIR AND EZMINC_minc_io_LIBRARY)
17 | set(EZMINC_LIBRARIES
18 | ${EZMINC_minc_io_LIBRARY}
19 | )
20 | SET(EZMINC_FOUND TRUE)
21 |
22 | ENDIF (EZMINC_INCLUDE_DIR AND EZMINC_minc_io_LIBRARY)
23 |
24 |
25 | IF (EZMINC_FOUND)
26 | IF (NOT Minc_FIND_QUIETLY)
27 | MESSAGE(STATUS "Found EZMINC: ${EZMINC_LIBRARIES}")
28 | ENDIF (NOT Minc_FIND_QUIETLY)
29 | ELSE (EZMINC_FOUND)
30 | IF (Minc_FIND_REQUIRED)
31 | MESSAGE(FATAL_ERROR "Cound not find EZMINC")
32 | ENDIF (Minc_FIND_REQUIRED)
33 | ENDIF (EZMINC_FOUND)
34 |
35 |
36 | mark_as_advanced(
37 | EZMINC_minc_io_LIBRARY
38 | )
39 |
--------------------------------------------------------------------------------
/libraries/akaze/cimg/cmake-modules/FindFFTW3F.cmake:
--------------------------------------------------------------------------------
1 | # - Try to find FFTW
2 | # Once done this will define
3 | # FFTW_FOUND - System has FFTW3
4 | # FFTW_INCLUDE_DIRS - The FFTW3 include directories
5 | # FFTW_LIBRARIES - The libraries needed to use FFTW3
6 | # FFTW_DEFINITIONS - Compiler switches required for using FFTW3
7 |
8 | find_package(PkgConfig)
9 |
10 | pkg_check_modules(PC_FFTW3F QUIET fftw3f)
11 |
12 | set(FFTW3F_DEFINITIONS ${PC_FFTW3F_CFLAGS_OTHER})
13 |
14 | find_path(FFTW3F_INCLUDE_DIR fftw3.h
15 | HINTS ${PC_FFTW3F_INCLUDEDIR} ${PC_FFTW3F_INCLUDE_DIRS}
16 | NAMES fftw3.h )
17 |
18 | find_library(FFTW3F_LIBRARY NAMES fftw3f libfftw3f
19 | HINTS ${PC_FFTW3F_LIBDIR} ${PC_FFTW3F_LIBRARY_DIRS} )
20 |
21 | set(FFTW3F_LIBRARIES ${FFTW3F_LIBRARY} )
22 | set(FFTW3F_INCLUDE_DIRS ${FFTW3F_INCLUDE_DIR} )
23 |
24 | include(FindPackageHandleStandardArgs)
25 | # handle the QUIETLY and REQUIRED arguments and set FFTW3F_FOUND to TRUE
26 | # if all listed variables are TRUE
27 | find_package_handle_standard_args(FFTW3F DEFAULT_MSG
28 | FFTW3F_LIBRARY FFTW3F_INCLUDE_DIR)
29 |
30 | mark_as_advanced(FFTW3F_INCLUDE_DIR FFTW3F_LIBRARY )
--------------------------------------------------------------------------------
/libraries/akaze/cimg/cmake-modules/FindJPEG.cmake:
--------------------------------------------------------------------------------
1 | # - Find JPEG
2 | # Find the native JPEG includes and library
3 | # This module defines
4 | # JPEG_INCLUDE_DIR, where to find jpeglib.h, etc.
5 | # JPEG_LIBRARIES, the libraries needed to use JPEG.
6 | # JPEG_FOUND, If false, do not try to use JPEG.
7 | # also defined, but not for general use are
8 | # JPEG_LIBRARY, where to find the JPEG library.
9 |
10 | #=============================================================================
11 | # Copyright 2001-2009 Kitware, Inc.
12 | #
13 | # Distributed under the OSI-approved BSD License (the "License");
14 | # see accompanying file Copyright.txt for details.
15 | #
16 | # This software is distributed WITHOUT ANY WARRANTY; without even the
17 | # implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
18 | # See the License for more information.
19 | #=============================================================================
20 | # (To distributed this file outside of CMake, substitute the full
21 | # License text for the above reference.)
22 |
23 | FIND_PATH(JPEG_INCLUDE_DIR jpeglib.h)
24 |
25 | SET(JPEG_NAMES ${JPEG_NAMES} jpeg)
26 | FIND_LIBRARY(JPEG_LIBRARY NAMES ${JPEG_NAMES} )
27 |
28 | # handle the QUIETLY and REQUIRED arguments and set JPEG_FOUND to TRUE if
29 | # all listed variables are TRUE
30 | INCLUDE(FindPackageHandleStandardArgs)
31 | FIND_PACKAGE_HANDLE_STANDARD_ARGS(JPEG DEFAULT_MSG JPEG_LIBRARY JPEG_INCLUDE_DIR)
32 |
33 | IF(JPEG_FOUND)
34 | SET(JPEG_LIBRARIES ${JPEG_LIBRARY})
35 | ENDIF(JPEG_FOUND)
36 |
37 | # Deprecated declarations.
38 | SET (NATIVE_JPEG_INCLUDE_PATH ${JPEG_INCLUDE_DIR} )
39 | IF(JPEG_LIBRARY)
40 | GET_FILENAME_COMPONENT (NATIVE_JPEG_LIB_PATH ${JPEG_LIBRARY} PATH)
41 | ENDIF(JPEG_LIBRARY)
42 |
43 | MARK_AS_ADVANCED(JPEG_LIBRARY JPEG_INCLUDE_DIR )
44 |
--------------------------------------------------------------------------------
/libraries/akaze/cimg/cmake-modules/FindMINC.cmake:
--------------------------------------------------------------------------------
1 | # FindMINC.cmake module
2 |
3 | # Find the native MINC includes and library
4 | # This module defines
5 | # MINC_INCLUDE_DIR, where to find jpeglib.h, etc.
6 | # MINC_LIBRARIES, the libraries needed to use MINC.
7 | # MINC_FOUND, If false, do not try to use MINC.
8 | # also defined, but not for general use are
9 | # MINC_LIBRARY, where to find the MINC library.
10 |
11 |
12 | FIND_PATH(MINC_INCLUDE_DIR minc2.h /usr/include /usr/local/include /usr/local/bic/include /opt/minc-toolkit/include)
13 | FIND_LIBRARY(MINC_volume_io2_LIBRARY NAMES volume_io2 HINTS /usr/lib /usr/local/lib /usr/local/bic/lib /opt/minc-toolkit/include)
14 | FIND_LIBRARY(MINC_minc2_LIBRARY NAMES minc2 HINTS /usr/lib /usr/local/lib /usr/local/bic/lib /opt/minc-toolkit/include)
15 |
16 |
17 | IF (MINC_INCLUDE_DIR AND MINC_minc2_LIBRARY AND MINC_volume_io2_LIBRARY)
18 | set(MINC_LIBRARIES
19 | ${MINC_volume_io2_LIBRARY}
20 | ${MINC_minc2_LIBRARY}
21 | )
22 | SET(MINC_FOUND TRUE)
23 |
24 | ENDIF (MINC_INCLUDE_DIR AND MINC_minc2_LIBRARY AND MINC_volume_io2_LIBRARY)
25 |
26 |
27 | IF (MINC_FOUND)
28 | IF (NOT Minc_FIND_QUIETLY)
29 | MESSAGE(STATUS "Found MINC: ${MINC_LIBRARIES}")
30 | ENDIF (NOT Minc_FIND_QUIETLY)
31 | ELSE (MINC_FOUND)
32 | IF (Minc_FIND_REQUIRED)
33 | MESSAGE(FATAL_ERROR "Cound not find MINC")
34 | ENDIF (Minc_FIND_REQUIRED)
35 | ENDIF (MINC_FOUND)
36 |
37 |
38 | mark_as_advanced(
39 | MINC_minc2_LIBRARY
40 | MINC_volume_io2_LIBRARY
41 | )
42 |
--------------------------------------------------------------------------------
/libraries/akaze/cimg/cmake-modules/FindTIFF.cmake:
--------------------------------------------------------------------------------
1 | # - Find TIFF library
2 | # Find the native TIFF includes and library
3 | # This module defines
4 | # TIFF_INCLUDE_DIR, where to find tiff.h, etc.
5 | # TIFF_LIBRARIES, libraries to link against to use TIFF.
6 | # TIFF_FOUND, If false, do not try to use TIFF.
7 | # also defined, but not for general use are
8 | # TIFF_LIBRARY, where to find the TIFF library.
9 |
10 | #=============================================================================
11 | # Copyright 2002-2009 Kitware, Inc.
12 | #
13 | # Distributed under the OSI-approved BSD License (the "License");
14 | # see accompanying file Copyright.txt for details.
15 | #
16 | # This software is distributed WITHOUT ANY WARRANTY; without even the
17 | # implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
18 | # See the License for more information.
19 | #=============================================================================
20 | # (To distributed this file outside of CMake, substitute the full
21 | # License text for the above reference.)
22 |
23 | FIND_PATH(TIFF_INCLUDE_DIR tiff.h)
24 |
25 | SET(TIFF_NAMES ${TIFF_NAMES} tiff libtiff libtiff3)
26 | FIND_LIBRARY(TIFF_LIBRARY NAMES ${TIFF_NAMES} )
27 |
28 | # handle the QUIETLY and REQUIRED arguments and set TIFF_FOUND to TRUE if
29 | # all listed variables are TRUE
30 | INCLUDE(FindPackageHandleStandardArgs)
31 | FIND_PACKAGE_HANDLE_STANDARD_ARGS(TIFF DEFAULT_MSG TIFF_LIBRARY TIFF_INCLUDE_DIR)
32 |
33 | IF(TIFF_FOUND)
34 | SET( TIFF_LIBRARIES ${TIFF_LIBRARY} )
35 | ENDIF(TIFF_FOUND)
36 |
37 | MARK_AS_ADVANCED(TIFF_INCLUDE_DIR TIFF_LIBRARY)
38 |
--------------------------------------------------------------------------------
/libraries/akaze/cimg/cmake-modules/FindZLIB.cmake:
--------------------------------------------------------------------------------
1 | # - Find zlib
2 | # Find the native ZLIB includes and library
3 | #
4 | # ZLIB_INCLUDE_DIRS - where to find zlib.h, etc.
5 | # ZLIB_LIBRARIES - List of libraries when using zlib.
6 | # ZLIB_FOUND - True if zlib found.
7 |
8 | #=============================================================================
9 | # Copyright 2001-2009 Kitware, Inc.
10 | #
11 | # Distributed under the OSI-approved BSD License (the "License");
12 | # see accompanying file Copyright.txt for details.
13 | #
14 | # This software is distributed WITHOUT ANY WARRANTY; without even the
15 | # implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
16 | # See the License for more information.
17 | #=============================================================================
18 | # (To distributed this file outside of CMake, substitute the full
19 | # License text for the above reference.)
20 |
21 | IF (ZLIB_INCLUDE_DIR)
22 | # Already in cache, be silent
23 | SET(ZLIB_FIND_QUIETLY TRUE)
24 | ENDIF (ZLIB_INCLUDE_DIR)
25 |
26 | FIND_PATH(ZLIB_INCLUDE_DIR zlib.h)
27 |
28 | SET(ZLIB_NAMES z zlib zdll)
29 | FIND_LIBRARY(ZLIB_LIBRARY NAMES ${ZLIB_NAMES} )
30 | MARK_AS_ADVANCED( ZLIB_LIBRARY ZLIB_INCLUDE_DIR )
31 |
32 | # Per-recommendation
33 | SET(ZLIB_INCLUDE_DIRS "${ZLIB_INCLUDE_DIR}")
34 | SET(ZLIB_LIBRARIES "${ZLIB_LIBRARY}")
35 |
36 | # handle the QUIETLY and REQUIRED arguments and set ZLIB_FOUND to TRUE if
37 | # all listed variables are TRUE
38 | INCLUDE(FindPackageHandleStandardArgs)
39 | FIND_PACKAGE_HANDLE_STANDARD_ARGS(ZLIB DEFAULT_MSG ZLIB_LIBRARIES ZLIB_INCLUDE_DIRS)
40 |
41 |
--------------------------------------------------------------------------------
/libraries/akaze/datasets/iguazu/H1to1p:
--------------------------------------------------------------------------------
1 | 1.0 0.0 0.0
2 | 0.0 1.0 0.0
3 | 0.0 0.0 1.0
4 |
--------------------------------------------------------------------------------
/libraries/akaze/datasets/iguazu/H1to2p:
--------------------------------------------------------------------------------
1 | 1 0 0
2 | 0 1 0
3 | 0 0 1
4 |
--------------------------------------------------------------------------------
/libraries/akaze/datasets/iguazu/H1to3p:
--------------------------------------------------------------------------------
1 | 1 0 0
2 | 0 1 0
3 | 0 0 1
4 |
--------------------------------------------------------------------------------
/libraries/akaze/datasets/iguazu/H1to4p:
--------------------------------------------------------------------------------
1 | 1 0 0
2 | 0 1 0
3 | 0 0 1
4 |
--------------------------------------------------------------------------------
/libraries/akaze/datasets/iguazu/H1to5p:
--------------------------------------------------------------------------------
1 | 1 0 0
2 | 0 1 0
3 | 0 0 1
4 |
--------------------------------------------------------------------------------
/libraries/akaze/datasets/iguazu/H1to6p:
--------------------------------------------------------------------------------
1 | 1 0 0
2 | 0 1 0
3 | 0 0 1
4 |
--------------------------------------------------------------------------------
/libraries/akaze/datasets/iguazu/img1.pgm:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/sweeneychris/TheiaSfM/d2112f15aa69a53dda68fe6c4bd4b0f1e2fe915b/libraries/akaze/datasets/iguazu/img1.pgm
--------------------------------------------------------------------------------
/libraries/akaze/datasets/iguazu/img2.pgm:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/sweeneychris/TheiaSfM/d2112f15aa69a53dda68fe6c4bd4b0f1e2fe915b/libraries/akaze/datasets/iguazu/img2.pgm
--------------------------------------------------------------------------------
/libraries/akaze/datasets/iguazu/img3.pgm:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/sweeneychris/TheiaSfM/d2112f15aa69a53dda68fe6c4bd4b0f1e2fe915b/libraries/akaze/datasets/iguazu/img3.pgm
--------------------------------------------------------------------------------
/libraries/akaze/datasets/iguazu/img4.pgm:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/sweeneychris/TheiaSfM/d2112f15aa69a53dda68fe6c4bd4b0f1e2fe915b/libraries/akaze/datasets/iguazu/img4.pgm
--------------------------------------------------------------------------------
/libraries/akaze/datasets/iguazu/img5.pgm:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/sweeneychris/TheiaSfM/d2112f15aa69a53dda68fe6c4bd4b0f1e2fe915b/libraries/akaze/datasets/iguazu/img5.pgm
--------------------------------------------------------------------------------
/libraries/akaze/datasets/iguazu/img6.pgm:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/sweeneychris/TheiaSfM/d2112f15aa69a53dda68fe6c4bd4b0f1e2fe915b/libraries/akaze/datasets/iguazu/img6.pgm
--------------------------------------------------------------------------------
/libraries/akaze/timer/CMakeLists.txt:
--------------------------------------------------------------------------------
1 | project(timer)
2 |
3 | INCLUDE_DIRECTORIES(./)
4 | ADD_LIBRARY(timer timer.cpp)
--------------------------------------------------------------------------------
/libraries/akaze/timer/timer.hpp:
--------------------------------------------------------------------------------
1 | // The following code was taken from the OpenMVG library and is unmodified other
2 | // than the namespace and header guard.
3 | // To see the original source code, please visit OpenMVG's repository:
4 | // https://github.com/openMVG/openMVG
5 | // The original software license is given below.
6 |
7 | // ========================================================================== //
8 | //
9 | // Copyright (C) 2013 David Ok
10 | // Copyright (C) 2014 Pierre Moulon
11 | //
12 | // Adapted from DO++, a basic set of libraries in C++ for computer
13 | // vision.
14 | //
15 | // This Source Code Form is subject to the terms of the Mozilla Public
16 | // License v. 2.0. If a copy of the MPL was not distributed with this file,
17 | // you can obtain one at http://mozilla.org/MPL/2.0/.
18 | // ========================================================================== //
19 |
20 | #ifndef TIMER_HPP
21 | #define TIMER_HPP
22 |
23 | #ifdef HAVE_CXX11_CHRONO
24 | #include
25 | #endif
26 | #include
27 |
28 | namespace timer {
29 |
30 | //! \brief Timer class with microsecond accuracy.
31 | class Timer
32 | {
33 | public:
34 | //! Default constructor
35 | Timer();
36 | //! Reset the timer to zero.
37 | void reset();
38 | //! Returns the elapsed time in seconds.
39 | double elapsed() const;
40 | //! Returns the elapsed time in milliseconds.
41 | double elapsedMs() const;
42 | private:
43 |
44 | #ifdef HAVE_CXX11_CHRONO
45 | std::chrono::high_resolution_clock::time_point start_;
46 | #else
47 | double start_;
48 | #ifdef _WIN32
49 | double frequency_;
50 | #endif
51 | #endif // HAVE_CXX11_CHRONO
52 | };
53 |
54 | // print the elapsed time
55 | std::ostream& operator << (std::ostream&, const Timer&);
56 |
57 | } // namespace timer
58 |
59 | #endif // TIMER_HPP
60 |
--------------------------------------------------------------------------------
/libraries/cereal/.gitignore:
--------------------------------------------------------------------------------
1 | # Compiled Object files
2 | *.slo
3 | *.lo
4 | *.o
5 |
6 | # Compiled Dynamic libraries
7 | *.so
8 | *.dylib
9 |
10 | # Compiled Static libraries
11 | *.lai
12 | *.la
13 | *.a
14 |
15 | # Visual studio cruft
16 | *.opensdf
17 | *.sdf
18 | *.suo
19 | *.user
20 | */x64
21 | */Debug*
22 | */Release*
23 | *.log
24 | *.tlog*
25 | *.obj
26 | *.VC.db
27 | *.VC.VC.opendb
28 | *.pdb
29 |
30 | # misc files mostly used for testing
31 | out.txt
32 | ptr.txt
33 | test.txt
34 | boost_serialize
35 | arr.txt
36 | performance
37 | include_renamed
38 | .ycm_extra_conf.py*
39 | doc/html
40 | rtti.txt
41 | doc/latex
42 | portability64
43 | portability32
44 | file.json
45 | out.xml
46 | cereal_version.out
47 | xml_ordering.out
48 | build
49 | /out/
--------------------------------------------------------------------------------
/libraries/cereal/.travis.yml:
--------------------------------------------------------------------------------
1 | language: cpp
2 |
3 | compiler:
4 | # TODO: Clang is currently giving issues
5 | #- clang
6 | - gcc
7 |
8 | before_install:
9 | # Always install g++4.8.1
10 | - sudo add-apt-repository -y ppa:ubuntu-toolchain-r/test
11 |
12 | # Install recent version of Boost
13 | - sudo add-apt-repository -y ppa:boost-latest/ppa
14 |
15 | # clang 3.3
16 | - if [ "$CXX" == "clang++" ]; then sudo add-apt-repository -y ppa:h-rayflood/llvm; fi
17 |
18 | - sudo apt-get update -qq
19 |
20 | install:
21 | - sudo apt-get install cmake
22 | - sudo apt-get install libboost1.54-all-dev
23 |
24 | # Always install valgrind
25 | - sudo apt-get install valgrind
26 |
27 | # Always install g++4.8.1
28 | - sudo apt-get install -qq g++-4.8
29 | - sudo apt-get install -qq g++-4.8-multilib
30 | - if [ "$CXX" = "g++" ]; then export CMAKE_CXX_COMPILER="g++-4.8"; fi
31 | - if [ "$CXX" = "g++" ]; then export CXX="g++-4.8"; fi
32 |
33 | # clang 3.3
34 | - if [ "$CXX" == "clang++" ]; then sudo apt-get install --allow-unauthenticated -qq clang-3.3; fi
35 | - if [ "$CXX" == "clang++" ]; then export CMAKE_CXX_COMPILER="clang++-3.3"; fi
36 | - if [ "$CXX" == "clang++" ]; then export CXX="clang++-3.3"; fi
37 |
38 | script:
39 | - mkdir build
40 | - cd build
41 | - cmake ..
42 | - make
43 |
44 | after_script:
45 | - ctest .
46 | # - make valgrind
47 |
48 | branches:
49 | only:
50 | - develop
51 |
--------------------------------------------------------------------------------
/libraries/cereal/LICENSE:
--------------------------------------------------------------------------------
1 | Copyright (c) 2014, Randolph Voorhies, Shane Grant
2 | All rights reserved.
3 |
4 | Redistribution and use in source and binary forms, with or without
5 | modification, are permitted provided that the following conditions are met:
6 | * Redistributions of source code must retain the above copyright
7 | notice, this list of conditions and the following disclaimer.
8 | * Redistributions in binary form must reproduce the above copyright
9 | notice, this list of conditions and the following disclaimer in the
10 | documentation and/or other materials provided with the distribution.
11 | * Neither the name of cereal nor the
12 | names of its contributors may be used to endorse or promote products
13 | derived from this software without specific prior written permission.
14 |
15 | THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
16 | ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
17 | WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
18 | DISCLAIMED. IN NO EVENT SHALL RANDOLPH VOORHIES OR SHANE GRANT BE LIABLE FOR ANY
19 | DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
20 | (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
21 | LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
22 | ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
23 | (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
24 | SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
25 |
--------------------------------------------------------------------------------
/libraries/cereal/doc/footer.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
12 |
13 |
14 |
19 |
20 |
30 |