Skip to content

Commit

Permalink
Merge remote-tracking branch 'refs/remotes/origin/develop'
Browse files Browse the repository at this point in the history
  • Loading branch information
rhiestan committed Sep 15, 2017
2 parents 0369905 + 8f08c8c commit 4787bd1
Show file tree
Hide file tree
Showing 73 changed files with 223,889 additions and 689 deletions.
18 changes: 12 additions & 6 deletions README.md
Expand Up @@ -18,32 +18,38 @@ The Regard3D source code is released under the [MIT license](http://opensource.o
Version history
---------------

###Version 0.9.2, 19.08.2017:
### Version 0.9.3, 15.09.2017:
- Added user-defined camera sensor width database, added ability to set focus length
- Added possibility to set camera model (Pinhole with various distortions, among them Fisheye)
- Removed PCL (point cloud library) as a dependency
- Fixed issue #9, JPEGs with EXIF data about camera orientation

### Version 0.9.2, 19.08.2017:
- Upgraded to OpenMVG 1.2, AssImp 4.0.1
- Added Fast-AKAZE, TBMR keypoint detectors
- Bugfix: Export of textured surfaces now works again (Issue #4)

###Version 0.9.1, 01.02.2017:
### Version 0.9.1, 01.02.2017:
- Upgraded to OpenMVG 1.1
- Third-party programs (MVE, PoissonRecon) up to date

###Version 0.9.0, 15.10.2015:
### Version 0.9.0, 15.10.2015:
- Upgraded to OpenMVG 0.9.0
- Third-party programs (MVE, PoissonRecon) up to date
- Mac: OpenMP-enabled build

###Version 0.8.0, 30.06.2015:
### Version 0.8.0, 30.06.2015:
- Upgraded to OpenMVG 0.8.1
- Changed multithreading in compute matches step

###Version 0.7.1, 12.05.2015:
### Version 0.7.1, 12.05.2015:
- Fixed bug when using CMVS
- Improved speed of Windows version
- Added multithreading in computing matches on Mac OS X (using TBB)
- Surfaces with textures (OBJ file format) are now loaded with AssImp
- "Export to CMPMVS" renamed to "Export to external MVS", MeshRecon format added

###Version 0.7.0, 28.04.2015
### Version 0.7.0, 28.04.2015
Initial version, based on OpenMVG 0.7


Expand Down
38 changes: 22 additions & 16 deletions src/CMakeLists.txt
Expand Up @@ -119,12 +119,6 @@ IF(R3D_CMAKE_DEBUG_OUTPUT)
ENDIF(R3D_CMAKE_DEBUG_OUTPUT)
INCLUDE_DIRECTORIES(${wxWidgets_INCLUDE_DIRS})

# PointCloudLibrary
LIST(APPEND CMAKE_MODULE_PATH "${PCL_DIR}/cmake")
FIND_PACKAGE(PCL REQUIRED)
INCLUDE_DIRECTORIES(${PCL_INCLUDE_DIRS})
LINK_DIRECTORIES(${PCL_LIBRARY_DIRS})

# FLANN (using FindFLANN.cmake from PCL)
LIST(APPEND CMAKE_MODULE_PATH "${CMAKE_SOURCE_DIR}/cmake")
SET(FLANN_USE_STATIC TRUE)
Expand All @@ -150,15 +144,13 @@ LIST(APPEND CMAKE_MODULE_PATH "${EIGEN3_INCLUDE_DIR}/cmake" )
FIND_PACKAGE(Eigen3 3.0.0 REQUIRED)
MESSAGE("Found Eigen ${EIGEN3_VERSION}")
INCLUDE_DIRECTORIES( ${EIGEN3_INCLUDE_DIR} )

FIND_PACKAGE(MKL)
IF(MKL_FOUND)
INCLUDE_DIRECTORIES(${MKL_INCLUDE_DIRS})
LINK_DIRECTORIES(${MKL_LIBRARY_DIRS})
ADD_DEFINITIONS(-DEIGEN_USE_MKL_ALL)
ENDIF(MKL_FOUND)

# Remark: Call find_package(PCL) first, as PCL also uses boost and overwrites boost variables like Boost_LIBRARIES

#FIND_PACKAGE(MKL)
#IF(MKL_FOUND)
# INCLUDE_DIRECTORIES(${MKL_INCLUDE_DIRS})
# LINK_DIRECTORIES(${MKL_LIBRARY_DIRS})
# ADD_DEFINITIONS(-DEIGEN_USE_MKL_ALL)
#ENDIF(MKL_FOUND)

# boost
SET(Boost_USE_STATIC_LIBS ON)
Expand Down Expand Up @@ -257,6 +249,10 @@ IF(R3D_USE_BLAS)
IMPORTED_LOCATION "${BLAS_LIBRARIES}")
ENDIF(MINGW)
INCLUDE_DIRECTORIES(${BLAS_INCLUDE_DIR})
ADD_DEFINITIONS(-DEIGEN_USE_LAPACKE)
IF(MSVC)
ADD_DEFINITIONS(-Dlapack_complex_float=std::complex<float> -Dlapack_complex_double=std::complex<double>)
ENDIF(MSVC)
ELSE (BLAS_FOUND)
MESSAGE("-- Did not find BLAS library.")
ENDIF (BLAS_FOUND)
Expand Down Expand Up @@ -465,6 +461,8 @@ endforeach()
message("OPENMVG_INCLUDE_DIRS: ${OPENMVG_INCLUDE_DIRS}")
INCLUDE_DIRECTORIES(${OPENMVG_INCLUDE_DIRS})

SET_TARGET_PROPERTIES(${OPENMVG_LIBRARIES} PROPERTIES MAP_IMPORTED_CONFIG_RELWITHDEBINFO RELEASE)

IF(DEFINED OPENMVG_VERSION)
SET(R3D_HAVE_OPENMVG_VERSION TRUE)
ENDIF(DEFINED OPENMVG_VERSION)
Expand Down Expand Up @@ -605,6 +603,14 @@ INCLUDE_DIRECTORIES(thirdparty/liop)
ADD_SUBDIRECTORY(thirdparty/tinyply)
INCLUDE_DIRECTORIES(thirdparty/tinyply)

# sqlite
ADD_SUBDIRECTORY(thirdparty/sqlite)
INCLUDE_DIRECTORIES(thirdparty/sqlite)

# kgraph
ADD_SUBDIRECTORY(thirdparty/kgraph)
INCLUDE_DIRECTORIES(thirdparty/kgraph)

## Organize source files in folders

INCLUDE_DIRECTORIES(${CMAKE_CURRENT_SOURCE_DIR})
Expand Down Expand Up @@ -678,7 +684,7 @@ IF(TARGET openMVG_SfM_Sequential)
ENDIF(TARGET openMVG_SfM_Sequential)

SET(REGARD3D_LINK_LIBRARIES ${REGARD3D_LINK_LIBRARIES} ${OPENSCENEGRAPH_LIBRARIES}
${Boost_LIBRARIES} ${PCL_LIBRARIES} daisy AKAZE fast-akaze liop ${OpenCV_LIBRARIES} ${OPENMVG_LIBRARIES}
${Boost_LIBRARIES} daisy AKAZE fast-akaze liop kgraph sqlite ${OpenCV_LIBRARIES} ${OPENMVG_LIBRARIES}
${CERES_LIBRARIES} ${GLOG_LIBRARIES} ${SuiteSparse_LIBRARIES} ${FLANN_LIBRARIES}
easyexif ${LAPACK_LIBRARIES} ${BLAS_LIBRARIES} ${ASSIMP_LIBRARIES} ${OPENGL_LIBRARIES}
optimized;minilog;debug;minilog_d tinyply)
Expand Down
5 changes: 3 additions & 2 deletions src/R3DComputeMatches.cpp
Expand Up @@ -598,7 +598,8 @@ void R3DComputeMatches::setMainFrame(Regard3DMainFrame *pMainFrame)
pMainFrame_ = pMainFrame;
}

bool R3DComputeMatches::computeMatches(Regard3DFeatures::R3DFParams &params, bool svgOutput, const R3DProjectPaths &paths)
bool R3DComputeMatches::computeMatches(Regard3DFeatures::R3DFParams &params,
bool svgOutput, const R3DProjectPaths &paths, int cameraModel)
{
R3DProject *pProject = R3DProject::getInstance();
assert(pProject != NULL);
Expand Down Expand Up @@ -679,7 +680,7 @@ bool R3DComputeMatches::computeMatches(Regard3DFeatures::R3DFParams &params, boo
}
#else
std::string sSfM_Data_Filename(paths.matchesSfmDataFilename_);
pProject->writeSfmData(paths);
pProject->writeSfmData(paths, cameraModel);

//---------------------------------------
// Read SfM Scene (image view & intrinsics data)
Expand Down
3 changes: 2 additions & 1 deletion src/R3DComputeMatches.h
Expand Up @@ -47,7 +47,8 @@ class R3DComputeMatches
void setMainFrame(Regard3DMainFrame *pMainFrame);
void addImages(const ImageInfoVector &iiv);

bool computeMatches(Regard3DFeatures::R3DFParams &params, bool svgOutput, const R3DProjectPaths &paths);
bool computeMatches(Regard3DFeatures::R3DFParams &params, bool svgOutput,
const R3DProjectPaths &paths, int cameraModel);
int computeMatchesOpenCV_NLOPT_step(double factor);
static double myfunc(unsigned n, const double *x, double *grad, void *my_func_data);
bool computeMatchesOpenCV_NLOPT();
Expand Down

0 comments on commit 4787bd1

Please sign in to comment.