Commit 570f0b11 authored by Andreas Schwarzkopf's avatar Andreas Schwarzkopf
Browse files

[ADD ##371] Surface detection approach of Lari/Habib 2014

 * This approach describes the surface detection of Zahra Lari and Ayman Habib (2014).
 * Paper: "An adaptive approach for the segmentation and extraction of planar
 * andlinear/cylindrical features from laser scanning data", ISPRS Journal of
 * Photogrammetry and Remote Sensing, 2014
 *
 * Eventually the process covers also the linear and cylindrical feature segmentation
 * but in our requirements only the planar segmentation is required. Steps:
 *   - Original laser point cloud as input data
 *   - PCA-based classification of planar features
 *   - Selection of appropriate representation models for the detected planar features
 *   - Local point density estimation along the detected planar features
 *   - Precise estimation of the planar features segmentation attributes
 *   - Parameter-domain segmentation and extraction of planar features
 *   - Boundary tracking for resolving the parameter-domain segmentation ambiguities of
 *     planar features
 *   - Extracted planar features in spatial domain
 *
 * Estimations (Based on the paper because I haven't completely impelemented yet):
 *   - Fair segmentation results
 *   - Relatively slow
 *
 * Implementation progress:
 *   - Done to the step "Precise estimation of the planar features segmentation
 *     attributes".
 *
 *
 * Other updates:
 *   - Renamed module "Pooints - Crop" to "Points - Transform". It optained the feature
 *     to translate and to rotate the point set.
 *   - Wew code refactoring.
parent b755bfa0
......@@ -33,7 +33,7 @@
#include "buildingsDetection/WMBuildingsDetection.h"
#include "buildingsDetectionByPCA/WMBuildingsDetectionByPCA.h"
#include "elevationImageExport/WMElevationImageExport.h"
#include "pointsCrop/WMPointsCrop.h"
#include "pointsTransform/WMPointsTransform.h"
#include "pointsCutOutliers/WMPointsCutOutliers.h"
#include "pointsGroupSelector/WMPointsGroupSelector.h"
#include "readLAS/WMReadLAS.h"
......@@ -58,9 +58,9 @@ extern "C" void WLoadModule( WModuleList& m ) // NOLINT
m.push_back( boost::shared_ptr< WModule >( new WMBuildingsDetection ) );
m.push_back( boost::shared_ptr< WModule >( new WMBuildingsDetectionByPCA ) );
m.push_back( boost::shared_ptr< WModule >( new WMElevationImageExport ) );
m.push_back( boost::shared_ptr< WModule >( new WMPointsCrop ) );
m.push_back( boost::shared_ptr< WModule >( new WMPointsCutOutliers ) );
m.push_back( boost::shared_ptr< WModule >( new WMPointsGroupSelector ) );
m.push_back( boost::shared_ptr< WModule >( new WMPointsTransform ) );
m.push_back( boost::shared_ptr< WModule >( new WMReadLAS ) );
m.push_back( boost::shared_ptr< WModule >( new WMSurfaceDetectionByLari ) );
m.push_back( boost::shared_ptr< WModule >( new WMSurfaceDetectionByPCL ) );
......
......@@ -28,10 +28,10 @@
#include <vector>
#include "core/graphicsEngine/WTriangleMesh.h"
#include "core/dataHandler/WDataSetPoints.h"
#include "../datastructures/octree/WOctNode.h"
#include "../datastructures/quadtree/WQuadNode.h"
#include "../datastructures/quadtree/WQuadTree.h"
#include "../datastructures/octree/WOctree.h"
#include "../common/datastructures/octree/WOctNode.h"
#include "../common/datastructures/quadtree/WQuadNode.h"
#include "../common/datastructures/quadtree/WQuadTree.h"
#include "../common/datastructures/octree/WOctree.h"
/**
* Class that detects buildings using the WDataSetPoints
......
......@@ -42,7 +42,7 @@
#include "WMBuildingsDetection.xpm"
#include "WMBuildingsDetection.h"
#include "WBuildingDetector.h"
#include "../datastructures/octree/WOctree.h"
#include "../common/datastructures/octree/WOctree.h"
// This line is needed by the module loader to actually find your module.
//W_LOADABLE_MODULE( WMBuildingsDetection )
......
......@@ -42,10 +42,10 @@
#include <osg/ShapeDrawable>
#include <osg/Geode>
#include "core/dataHandler/WDataSetPoints.h"
#include "../datastructures/octree/WOctree.h"
#include "../datastructures/quadtree/WQuadTree.h"
#include "../common/datastructures/octree/WOctree.h"
#include "../common/datastructures/quadtree/WQuadTree.h"
#include "../datastructures/WDataSetPointsGrouped.h"
#include "../common/datastructures/WDataSetPointsGrouped.h"
......
......@@ -42,7 +42,7 @@
#include "WMBuildingsDetectionByPCA.xpm"
#include "WMBuildingsDetectionByPCA.h"
#include "WPCADetector.h"
#include "../datastructures/octree/WOctree.h"
#include "../common/datastructures/octree/WOctree.h"
// This line is needed by the module loader to actually find your module.
//W_LOADABLE_MODULE( WMBuildingsDetectionByPCA )
......
......@@ -42,10 +42,10 @@
#include <osg/ShapeDrawable>
#include <osg/Geode>
#include "core/dataHandler/WDataSetPoints.h"
#include "../datastructures/octree/WOctree.h"
#include "../datastructures/quadtree/WQuadTree.h"
#include "../common/datastructures/octree/WOctree.h"
#include "../common/datastructures/quadtree/WQuadTree.h"
#include "../datastructures/WDataSetPointsGrouped.h"
#include "../common/datastructures/WDataSetPointsGrouped.h"
......
......@@ -28,10 +28,10 @@
#include <vector>
#include "core/graphicsEngine/WTriangleMesh.h"
#include "core/dataHandler/WDataSetPoints.h"
#include "../datastructures/octree/WOctNode.h"
#include "../datastructures/quadtree/WQuadNode.h"
#include "../datastructures/quadtree/WQuadTree.h"
#include "../datastructures/octree/WOctree.h"
#include "../common/datastructures/octree/WOctNode.h"
#include "../common/datastructures/quadtree/WQuadNode.h"
#include "../common/datastructures/quadtree/WQuadTree.h"
#include "../common/datastructures/octree/WOctree.h"
#include "structure/WPcaDetectOctNode.h"
#include "core/common/math/principalComponentAnalysis/WPrincipalComponentAnalysis.h"
#include "core/common/WProgress.h"
......
......@@ -26,7 +26,7 @@
#ifndef WPCADETECTOCTNODE_H
#define WPCADETECTOCTNODE_H
#include <vector>
#include "../../datastructures/octree/WOctNode.h"
#include "../../common/datastructures/octree/WOctNode.h"
#include "core/common/math/linearAlgebra/WPosition.h"
#include "core/dataHandler/WDataSetPoints.h"
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment