Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge remote-tracking branch 'origin/master' into poisson
- Loading branch information
Showing
41 changed files
with
1,995 additions
and
365 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -35,6 +35,7 @@ install_manifest.txt | |
# | ||
# visual studio cruft | ||
# | ||
/.vs* | ||
Debug/ | ||
Release/ | ||
RelWithDebInfo/ | ||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,22 +1,31 @@ | ||
set(PDAL_COMMON_CXX_FLAGS "-Wextra -Wall -Wno-unused-parameter -Wno-unused-variable -Wpointer-arith -Wcast-align -Wcast-qual -Wredundant-decls -Wno-long-long -Wno-unknown-pragmas -Wno-deprecated-declarations -isystem /usr/local/include" | ||
) | ||
|
||
if (${CMAKE_CXX_COMPILER_ID} MATCHES "GNU") | ||
if (${CMAKE_CXX_COMPILER_VERSION} VERSION_LESS 4.7) | ||
set(CXX_STANDARD "-std=c++0x") | ||
set(PDAL_CXX_STANDARD "-std=c++0x") | ||
else() | ||
set(CXX_STANDARD "-std=c++11") | ||
endif() | ||
if (${CMAKE_CXX_COMPILER_VERSION} VERSION_GREATER 4.6) | ||
set(PDAL_NO_AS_NEEDED_START "-Wl,--no-as-needed") | ||
set(PDAL_NO_AS_NEEDED_END "-Wl,--as-needed") | ||
set(PDAL_CXX_STANDARD "-std=c++11") | ||
endif() | ||
set(PDAL_COMPILER_GCC 1) | ||
elseif (${CMAKE_CXX_COMPILER_ID} MATCHES "Clang") | ||
set(CXX_STANDARD "-std=c++11") | ||
set(PDAL_CXX_STANDARD "-std=c++11") | ||
set(PDAL_COMPILER_CLANG 1) | ||
else() | ||
message(FATAL_ERROR "Unsupported C++ compiler") | ||
endif() | ||
|
||
set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${PDAL_COMMON_CXX_FLAGS} ${CXX_STANDARD}") | ||
function(PDAL_TARGET_COMPILE_SETTINGS target) | ||
target_compile_options(${target} PUBLIC | ||
${PDAL_CXX_STANDARD} | ||
-Wextra | ||
-Wall | ||
-Wno-unused-parameter | ||
-Wno-unused-variable | ||
-Wpointer-arith | ||
-Wcast-align | ||
-Wcast-qual | ||
-Wredundant-decls | ||
-Wno-long-long | ||
-Wno-unknown-pragmas | ||
-Wno-deprecated-declarations | ||
) | ||
target_include_directories(${target} SYSTEM PUBLIC /usr/local/include) | ||
endfunction() |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,73 @@ | ||
.. _filters.cpd: | ||
|
||
filters.cpd | ||
============== | ||
|
||
The CPD filter uses the Coherent Point Drift :cite:`Myronenko` algorithm to compute a rigid, nonrigid, or affine transformation between datasets. | ||
The rigid and affine are what you'd expect; the nonrigid transformation uses Motion Coherence Theory :cite:`Yuille1998` to "bend" the points to find a best alignment. | ||
|
||
.. note:: | ||
|
||
CPD is computationally intensive and can be slow when working with many points (i.e. > 10 000). | ||
Nonrigid is significatly slower than rigid and affine. | ||
|
||
The first input to the change filter are considered the "fixed" points, and all subsequent inputs are "moving" points. | ||
The output from the change filter are the "moving" points after the calculated transformation has been applied, one point view per input. | ||
Any additional information about the cpd registration, e.g. the rigid transformation matrix, will be placed in the stage's metadata. | ||
|
||
Examples | ||
-------- | ||
|
||
.. code-block:: json | ||
{ | ||
"pipeline": [ | ||
"fixed.las", | ||
"moving.las", | ||
{ | ||
"type": "filters.rigid", | ||
"method": "rigid" | ||
}, | ||
"output.las" | ||
] | ||
} | ||
If "method" is not provided, the cpd filter will default to using the rigid registration method. | ||
To get the transform matrix, you'll need to use the ``--metadata`` option: | ||
|
||
:: | ||
|
||
$ pdal pipeline cpd-pipeline.json --metadata cpd-metadata.json | ||
|
||
The metadata output might start something like: | ||
|
||
.. code-block:: json | ||
{ | ||
"stages": | ||
{ | ||
"filters.cpd": | ||
{ | ||
"iterations": 10, | ||
"method": "rigid", | ||
"runtime": 0.003839, | ||
"sigma2": 5.684342128e-16, | ||
"transform": " 1 -6.21722e-17 1.30104e-18 5.29303e-11-8.99346e-17 1 2.60209e-18 -3.49247e-10 -2.1684e-19 1.73472e-18 1 -1.53477e-12 0 0 0 1" | ||
}, | ||
}, | ||
.. seealso:: | ||
:ref:`filters.transformation` to apply a transform to other points. | ||
Options | ||
-------- | ||
method | ||
Change detection method to use. | ||
Valid values are "rigid", "affine", and "nonrigid". | ||
[Default: **rigid**] | ||
.. _Coherent Point Drift (CPD): https://github.com/gadomski/cpd | ||
.. bibliography:: references.bib |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,75 @@ | ||
.. _filters.head: | ||
|
||
filters.head | ||
=============================================================================== | ||
|
||
The HeadFilter returns a specified number of points from the beginning of the | ||
PointView. | ||
|
||
.. note:: | ||
|
||
If the requested number of points exceeds the size of the point cloud, all | ||
points are passed with a warning. | ||
|
||
|
||
Example #1 | ||
---------- | ||
|
||
Thin a point cloud by first shuffling the point order with | ||
:ref:`filters.randomize` and then picking the first 10000 using the HeadFilter. | ||
|
||
|
||
.. code-block:: json | ||
{ | ||
"pipeline":[ | ||
{ | ||
"type":"filters.randomize" | ||
}, | ||
{ | ||
"type":"filters.head", | ||
"count":10000 | ||
} | ||
] | ||
} | ||
Example #2 | ||
---------- | ||
|
||
Compute height above ground and extract the ten highest points. | ||
|
||
|
||
.. code-block:: json | ||
{ | ||
"pipeline":[ | ||
{ | ||
"type":"filters.smrf" | ||
}, | ||
{ | ||
"type":"filters.hag" | ||
}, | ||
{ | ||
"type":"filters.sort", | ||
"dimension":"HeightAboveGround", | ||
"order":"DESC" | ||
}, | ||
{ | ||
"type":"filters.head", | ||
"count":10 | ||
} | ||
] | ||
} | ||
.. seealso:: | ||
|
||
:ref:`filters.tail` is the dual to :ref:`filters.head`. | ||
|
||
|
||
Options | ||
------------------------------------------------------------------------------- | ||
|
||
count | ||
Number of points to return. [Default: **10**] |
Oops, something went wrong.