-
-
Notifications
You must be signed in to change notification settings - Fork 816
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
3D-3D Registration based on PCL #425
Conversation
67aea06
to
2273e73
Compare
find_package(Flann QUIET) | ||
if(NOT FLANN_FOUND OR ALICEVISION_USE_INTERNAL_FLANN) | ||
set(FLANN_INCLUDE_DIR_HINTS ${CMAKE_CURRENT_SOURCE_DIR}/dependencies/flann/src/cpp) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
FLANN_INCLUDE_DIR_HINTS
is now set after find_package
.
In order to find the internal one we should add another find_package
after this line.
src/CMakeLists.txt
Outdated
@@ -320,8 +321,8 @@ if(Eigen3_FOUND OR EIGEN3_FOUND) | |||
# message(FATAL_ERROR "EIGEN_INCLUDE_DIR: ${EIGEN_INCLUDE_DIR}") | |||
include_directories(${EIGEN_INCLUDE_DIR}) | |||
# See https://eigen.tuxfamily.org/dox/group__TopicUnalignedArrayAssert.html | |||
add_definitions("-DEIGEN_DONT_ALIGN_STATICALLY=1") | |||
add_definitions("-DEIGEN_DONT_VECTORIZE=1") | |||
# add_definitions("-DEIGEN_DONT_ALIGN_STATICALLY=1") |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
WARNING: do not merge before we have done all the changes needed for that.
{ | ||
auto tic = std::chrono::steady_clock::now(); | ||
|
||
int res = loadCloud(file, targetCloud); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
const
|
||
int PointcloudRegistration::loadTargetCloud(const std::string & file) | ||
{ | ||
auto tic = std::chrono::steady_clock::now(); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
use Timer
|
||
pcl::PointCloud<pcl::PointXYZRGB> inputCloud, outputCloud; | ||
|
||
// load input cloud: |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
const auto ext = path(inputFile).extension().toString();
if(inputFile == "ply")
...
pcl::transformPointCloud(inputCloud, outputCloud, T); | ||
|
||
// save the transformed pointcloud: | ||
if (outputFile.substr(outputFile.find_last_of(".") + 1) == "ply") |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
if(ext != "ply")
{
ALICEVISION_LOG_ERROR("PointcloudRegistration::saveCloud: Unknown extension: " << outputFile);
return EXIT_FAILURE;
}
pcl::io::savePLYFile(outputFile, outputCloud);
FYI, we have a quick example for using symmetric with PCL > 1.10.0 here: |
{ | ||
case EAlignmentMethod::GICP: | ||
{ | ||
transform = alignGICP(mutableSourceCloud, mutableTargetCloud); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
break
?
or is it done on purpose?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
it seems to be a bug
* add scale support in point_to_point with directSimilarityEstimator * add multiple modes to command line * remove code using PCL windows: no UI inside the library
Point cloud preparation means: center to origin, initial rescale and voxelgrid subsampling.
… if voxelSize is 0
8acf02b
to
c53b5e9
Compare
WARNING: DO NOT MERGE due to Eigen alignment flags or C++17 switch.