kopia lustrzana https://github.com/OpenDroneMap/ODM
Simplified DEM parameters, added odm_filterpoints, point cloud filtering for all products
Former-commit-id: 3b0dd4b3a0
pull/1161/head
rodzic
58e32a5ce6
commit
d15da00fe7
|
@ -8,6 +8,8 @@ add_subdirectory(odm_extract_utm)
|
||||||
add_subdirectory(odm_georef)
|
add_subdirectory(odm_georef)
|
||||||
add_subdirectory(odm_orthophoto)
|
add_subdirectory(odm_orthophoto)
|
||||||
add_subdirectory(odm_cleanmesh)
|
add_subdirectory(odm_cleanmesh)
|
||||||
|
add_subdirectory(odm_filterpoints)
|
||||||
|
|
||||||
if (ODM_BUILD_SLAM)
|
if (ODM_BUILD_SLAM)
|
||||||
add_subdirectory(odm_slam)
|
add_subdirectory(odm_slam)
|
||||||
endif ()
|
endif ()
|
||||||
|
|
|
@ -0,0 +1,21 @@
|
||||||
|
project(odm_filterpoints)
|
||||||
|
cmake_minimum_required(VERSION 2.8)
|
||||||
|
|
||||||
|
# Add compiler options.
|
||||||
|
add_definitions(-Wall -Wextra -Wconversion -pedantic -std=c++11)
|
||||||
|
|
||||||
|
# PDAL and jsoncpp
|
||||||
|
find_package(PDAL REQUIRED CONFIG)
|
||||||
|
include_directories(${PDAL_INCLUDE_DIRS})
|
||||||
|
include_directories("${PROJECT_SOURCE_DIR}/../../SuperBuild/src/pdal/vendor/jsoncpp/dist")
|
||||||
|
link_directories(${PDAL_LIBRARY_DIRS})
|
||||||
|
add_definitions(${PDAL_DEFINITIONS})
|
||||||
|
|
||||||
|
# Add source directory
|
||||||
|
aux_source_directory("./src" SRC_LIST)
|
||||||
|
|
||||||
|
# Add exectuteable
|
||||||
|
add_executable(${PROJECT_NAME} ${SRC_LIST})
|
||||||
|
|
||||||
|
# Link
|
||||||
|
target_link_libraries(${PROJECT_NAME} jsoncpp ${PDAL_LIBRARIES})
|
|
@ -0,0 +1,375 @@
|
||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<!DOCTYPE QtCreatorProject>
|
||||||
|
<!-- Written by QtCreator 4.8.0, 2019-03-05T16:17:25. -->
|
||||||
|
<qtcreator>
|
||||||
|
<data>
|
||||||
|
<variable>EnvironmentId</variable>
|
||||||
|
<value type="QByteArray">{e8bffd0b-56b8-4848-bdbf-de67a1ef6b0a}</value>
|
||||||
|
</data>
|
||||||
|
<data>
|
||||||
|
<variable>ProjectExplorer.Project.ActiveTarget</variable>
|
||||||
|
<value type="int">0</value>
|
||||||
|
</data>
|
||||||
|
<data>
|
||||||
|
<variable>ProjectExplorer.Project.EditorSettings</variable>
|
||||||
|
<valuemap type="QVariantMap">
|
||||||
|
<value type="bool" key="EditorConfiguration.AutoIndent">true</value>
|
||||||
|
<value type="bool" key="EditorConfiguration.AutoSpacesForTabs">false</value>
|
||||||
|
<value type="bool" key="EditorConfiguration.CamelCaseNavigation">true</value>
|
||||||
|
<valuemap type="QVariantMap" key="EditorConfiguration.CodeStyle.0">
|
||||||
|
<value type="QString" key="language">Cpp</value>
|
||||||
|
<valuemap type="QVariantMap" key="value">
|
||||||
|
<value type="QByteArray" key="CurrentPreferences">CppGlobal</value>
|
||||||
|
</valuemap>
|
||||||
|
</valuemap>
|
||||||
|
<valuemap type="QVariantMap" key="EditorConfiguration.CodeStyle.1">
|
||||||
|
<value type="QString" key="language">QmlJS</value>
|
||||||
|
<valuemap type="QVariantMap" key="value">
|
||||||
|
<value type="QByteArray" key="CurrentPreferences">QmlJSGlobal</value>
|
||||||
|
</valuemap>
|
||||||
|
</valuemap>
|
||||||
|
<value type="int" key="EditorConfiguration.CodeStyle.Count">2</value>
|
||||||
|
<value type="QByteArray" key="EditorConfiguration.Codec">UTF-8</value>
|
||||||
|
<value type="bool" key="EditorConfiguration.ConstrainTooltips">false</value>
|
||||||
|
<value type="int" key="EditorConfiguration.IndentSize">4</value>
|
||||||
|
<value type="bool" key="EditorConfiguration.KeyboardTooltips">false</value>
|
||||||
|
<value type="int" key="EditorConfiguration.MarginColumn">80</value>
|
||||||
|
<value type="bool" key="EditorConfiguration.MouseHiding">true</value>
|
||||||
|
<value type="bool" key="EditorConfiguration.MouseNavigation">true</value>
|
||||||
|
<value type="int" key="EditorConfiguration.PaddingMode">1</value>
|
||||||
|
<value type="bool" key="EditorConfiguration.ScrollWheelZooming">true</value>
|
||||||
|
<value type="bool" key="EditorConfiguration.ShowMargin">false</value>
|
||||||
|
<value type="int" key="EditorConfiguration.SmartBackspaceBehavior">0</value>
|
||||||
|
<value type="bool" key="EditorConfiguration.SmartSelectionChanging">true</value>
|
||||||
|
<value type="bool" key="EditorConfiguration.SpacesForTabs">true</value>
|
||||||
|
<value type="int" key="EditorConfiguration.TabKeyBehavior">0</value>
|
||||||
|
<value type="int" key="EditorConfiguration.TabSize">8</value>
|
||||||
|
<value type="bool" key="EditorConfiguration.UseGlobal">true</value>
|
||||||
|
<value type="int" key="EditorConfiguration.Utf8BomBehavior">1</value>
|
||||||
|
<value type="bool" key="EditorConfiguration.addFinalNewLine">true</value>
|
||||||
|
<value type="bool" key="EditorConfiguration.cleanIndentation">true</value>
|
||||||
|
<value type="bool" key="EditorConfiguration.cleanWhitespace">true</value>
|
||||||
|
<value type="bool" key="EditorConfiguration.inEntireDocument">false</value>
|
||||||
|
</valuemap>
|
||||||
|
</data>
|
||||||
|
<data>
|
||||||
|
<variable>ProjectExplorer.Project.PluginSettings</variable>
|
||||||
|
<valuemap type="QVariantMap">
|
||||||
|
<valuelist type="QVariantList" key="ClangCodeModel.CustomCommandLineKey"/>
|
||||||
|
<value type="bool" key="ClangCodeModel.UseGlobalConfig">true</value>
|
||||||
|
</valuemap>
|
||||||
|
</data>
|
||||||
|
<data>
|
||||||
|
<variable>ProjectExplorer.Project.Target.0</variable>
|
||||||
|
<valuemap type="QVariantMap">
|
||||||
|
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Desktop</value>
|
||||||
|
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName">Desktop</value>
|
||||||
|
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">{be5adc2c-1277-4808-ab17-0dcac16347d0}</value>
|
||||||
|
<value type="int" key="ProjectExplorer.Target.ActiveBuildConfiguration">0</value>
|
||||||
|
<value type="int" key="ProjectExplorer.Target.ActiveDeployConfiguration">0</value>
|
||||||
|
<value type="int" key="ProjectExplorer.Target.ActiveRunConfiguration">0</value>
|
||||||
|
<valuemap type="QVariantMap" key="ProjectExplorer.Target.BuildConfiguration.0">
|
||||||
|
<valuelist type="QVariantList" key="CMake.Configuration"/>
|
||||||
|
<value type="QString" key="ProjectExplorer.BuildConfiguration.BuildDirectory">/data/OpenDroneMap/modules/build-odm_filterpoints-Desktop-Default</value>
|
||||||
|
<valuemap type="QVariantMap" key="ProjectExplorer.BuildConfiguration.BuildStepList.0">
|
||||||
|
<valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.0">
|
||||||
|
<value type="QString" key="CMakeProjectManager.MakeStep.AdditionalArguments"></value>
|
||||||
|
<valuelist type="QVariantList" key="CMakeProjectManager.MakeStep.BuildTargets">
|
||||||
|
<value type="QString">all</value>
|
||||||
|
</valuelist>
|
||||||
|
<value type="bool" key="ProjectExplorer.BuildStep.Enabled">true</value>
|
||||||
|
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">CMake Build</value>
|
||||||
|
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
|
||||||
|
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">CMakeProjectManager.MakeStep</value>
|
||||||
|
</valuemap>
|
||||||
|
<value type="int" key="ProjectExplorer.BuildStepList.StepsCount">1</value>
|
||||||
|
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Build</value>
|
||||||
|
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
|
||||||
|
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.BuildSteps.Build</value>
|
||||||
|
</valuemap>
|
||||||
|
<valuemap type="QVariantMap" key="ProjectExplorer.BuildConfiguration.BuildStepList.1">
|
||||||
|
<valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.0">
|
||||||
|
<value type="QString" key="CMakeProjectManager.MakeStep.AdditionalArguments"></value>
|
||||||
|
<valuelist type="QVariantList" key="CMakeProjectManager.MakeStep.BuildTargets">
|
||||||
|
<value type="QString">clean</value>
|
||||||
|
</valuelist>
|
||||||
|
<value type="bool" key="ProjectExplorer.BuildStep.Enabled">true</value>
|
||||||
|
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">CMake Build</value>
|
||||||
|
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
|
||||||
|
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">CMakeProjectManager.MakeStep</value>
|
||||||
|
</valuemap>
|
||||||
|
<value type="int" key="ProjectExplorer.BuildStepList.StepsCount">1</value>
|
||||||
|
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Clean</value>
|
||||||
|
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
|
||||||
|
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.BuildSteps.Clean</value>
|
||||||
|
</valuemap>
|
||||||
|
<value type="int" key="ProjectExplorer.BuildConfiguration.BuildStepListCount">2</value>
|
||||||
|
<value type="bool" key="ProjectExplorer.BuildConfiguration.ClearSystemEnvironment">false</value>
|
||||||
|
<valuelist type="QVariantList" key="ProjectExplorer.BuildConfiguration.UserEnvironmentChanges"/>
|
||||||
|
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Default</value>
|
||||||
|
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName">Default</value>
|
||||||
|
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">CMakeProjectManager.CMakeBuildConfiguration</value>
|
||||||
|
</valuemap>
|
||||||
|
<valuemap type="QVariantMap" key="ProjectExplorer.Target.BuildConfiguration.1">
|
||||||
|
<valuelist type="QVariantList" key="CMake.Configuration">
|
||||||
|
<value type="QString">CMAKE_BUILD_TYPE:STRING=Debug</value>
|
||||||
|
</valuelist>
|
||||||
|
<value type="QString" key="ProjectExplorer.BuildConfiguration.BuildDirectory">/data/OpenDroneMap/modules/build-odm_filterpoints-Desktop-Debug</value>
|
||||||
|
<valuemap type="QVariantMap" key="ProjectExplorer.BuildConfiguration.BuildStepList.0">
|
||||||
|
<valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.0">
|
||||||
|
<value type="QString" key="CMakeProjectManager.MakeStep.AdditionalArguments"></value>
|
||||||
|
<valuelist type="QVariantList" key="CMakeProjectManager.MakeStep.BuildTargets">
|
||||||
|
<value type="QString">all</value>
|
||||||
|
</valuelist>
|
||||||
|
<value type="bool" key="ProjectExplorer.BuildStep.Enabled">true</value>
|
||||||
|
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">CMake Build</value>
|
||||||
|
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
|
||||||
|
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">CMakeProjectManager.MakeStep</value>
|
||||||
|
</valuemap>
|
||||||
|
<value type="int" key="ProjectExplorer.BuildStepList.StepsCount">1</value>
|
||||||
|
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Build</value>
|
||||||
|
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
|
||||||
|
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.BuildSteps.Build</value>
|
||||||
|
</valuemap>
|
||||||
|
<valuemap type="QVariantMap" key="ProjectExplorer.BuildConfiguration.BuildStepList.1">
|
||||||
|
<valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.0">
|
||||||
|
<value type="QString" key="CMakeProjectManager.MakeStep.AdditionalArguments"></value>
|
||||||
|
<valuelist type="QVariantList" key="CMakeProjectManager.MakeStep.BuildTargets">
|
||||||
|
<value type="QString">clean</value>
|
||||||
|
</valuelist>
|
||||||
|
<value type="bool" key="ProjectExplorer.BuildStep.Enabled">true</value>
|
||||||
|
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">CMake Build</value>
|
||||||
|
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
|
||||||
|
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">CMakeProjectManager.MakeStep</value>
|
||||||
|
</valuemap>
|
||||||
|
<value type="int" key="ProjectExplorer.BuildStepList.StepsCount">1</value>
|
||||||
|
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Clean</value>
|
||||||
|
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
|
||||||
|
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.BuildSteps.Clean</value>
|
||||||
|
</valuemap>
|
||||||
|
<value type="int" key="ProjectExplorer.BuildConfiguration.BuildStepListCount">2</value>
|
||||||
|
<value type="bool" key="ProjectExplorer.BuildConfiguration.ClearSystemEnvironment">false</value>
|
||||||
|
<valuelist type="QVariantList" key="ProjectExplorer.BuildConfiguration.UserEnvironmentChanges"/>
|
||||||
|
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Debug</value>
|
||||||
|
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName">Debug</value>
|
||||||
|
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">CMakeProjectManager.CMakeBuildConfiguration</value>
|
||||||
|
</valuemap>
|
||||||
|
<valuemap type="QVariantMap" key="ProjectExplorer.Target.BuildConfiguration.2">
|
||||||
|
<valuelist type="QVariantList" key="CMake.Configuration">
|
||||||
|
<value type="QString">CMAKE_BUILD_TYPE:STRING=Release</value>
|
||||||
|
</valuelist>
|
||||||
|
<value type="QString" key="ProjectExplorer.BuildConfiguration.BuildDirectory">/data/OpenDroneMap/modules/build-odm_filterpoints-Desktop-Release</value>
|
||||||
|
<valuemap type="QVariantMap" key="ProjectExplorer.BuildConfiguration.BuildStepList.0">
|
||||||
|
<valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.0">
|
||||||
|
<value type="QString" key="CMakeProjectManager.MakeStep.AdditionalArguments"></value>
|
||||||
|
<valuelist type="QVariantList" key="CMakeProjectManager.MakeStep.BuildTargets">
|
||||||
|
<value type="QString">all</value>
|
||||||
|
</valuelist>
|
||||||
|
<value type="bool" key="ProjectExplorer.BuildStep.Enabled">true</value>
|
||||||
|
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">CMake Build</value>
|
||||||
|
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
|
||||||
|
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">CMakeProjectManager.MakeStep</value>
|
||||||
|
</valuemap>
|
||||||
|
<value type="int" key="ProjectExplorer.BuildStepList.StepsCount">1</value>
|
||||||
|
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Build</value>
|
||||||
|
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
|
||||||
|
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.BuildSteps.Build</value>
|
||||||
|
</valuemap>
|
||||||
|
<valuemap type="QVariantMap" key="ProjectExplorer.BuildConfiguration.BuildStepList.1">
|
||||||
|
<valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.0">
|
||||||
|
<value type="QString" key="CMakeProjectManager.MakeStep.AdditionalArguments"></value>
|
||||||
|
<valuelist type="QVariantList" key="CMakeProjectManager.MakeStep.BuildTargets">
|
||||||
|
<value type="QString">clean</value>
|
||||||
|
</valuelist>
|
||||||
|
<value type="bool" key="ProjectExplorer.BuildStep.Enabled">true</value>
|
||||||
|
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">CMake Build</value>
|
||||||
|
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
|
||||||
|
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">CMakeProjectManager.MakeStep</value>
|
||||||
|
</valuemap>
|
||||||
|
<value type="int" key="ProjectExplorer.BuildStepList.StepsCount">1</value>
|
||||||
|
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Clean</value>
|
||||||
|
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
|
||||||
|
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.BuildSteps.Clean</value>
|
||||||
|
</valuemap>
|
||||||
|
<value type="int" key="ProjectExplorer.BuildConfiguration.BuildStepListCount">2</value>
|
||||||
|
<value type="bool" key="ProjectExplorer.BuildConfiguration.ClearSystemEnvironment">false</value>
|
||||||
|
<valuelist type="QVariantList" key="ProjectExplorer.BuildConfiguration.UserEnvironmentChanges"/>
|
||||||
|
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Release</value>
|
||||||
|
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName">Release</value>
|
||||||
|
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">CMakeProjectManager.CMakeBuildConfiguration</value>
|
||||||
|
</valuemap>
|
||||||
|
<valuemap type="QVariantMap" key="ProjectExplorer.Target.BuildConfiguration.3">
|
||||||
|
<valuelist type="QVariantList" key="CMake.Configuration">
|
||||||
|
<value type="QString">CMAKE_BUILD_TYPE:STRING=RelWithDebInfo</value>
|
||||||
|
</valuelist>
|
||||||
|
<value type="QString" key="ProjectExplorer.BuildConfiguration.BuildDirectory">/data/OpenDroneMap/modules/build-odm_filterpoints-Desktop-Release with Debug Information</value>
|
||||||
|
<valuemap type="QVariantMap" key="ProjectExplorer.BuildConfiguration.BuildStepList.0">
|
||||||
|
<valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.0">
|
||||||
|
<value type="QString" key="CMakeProjectManager.MakeStep.AdditionalArguments"></value>
|
||||||
|
<valuelist type="QVariantList" key="CMakeProjectManager.MakeStep.BuildTargets">
|
||||||
|
<value type="QString">all</value>
|
||||||
|
</valuelist>
|
||||||
|
<value type="bool" key="ProjectExplorer.BuildStep.Enabled">true</value>
|
||||||
|
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">CMake Build</value>
|
||||||
|
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
|
||||||
|
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">CMakeProjectManager.MakeStep</value>
|
||||||
|
</valuemap>
|
||||||
|
<value type="int" key="ProjectExplorer.BuildStepList.StepsCount">1</value>
|
||||||
|
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Build</value>
|
||||||
|
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
|
||||||
|
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.BuildSteps.Build</value>
|
||||||
|
</valuemap>
|
||||||
|
<valuemap type="QVariantMap" key="ProjectExplorer.BuildConfiguration.BuildStepList.1">
|
||||||
|
<valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.0">
|
||||||
|
<value type="QString" key="CMakeProjectManager.MakeStep.AdditionalArguments"></value>
|
||||||
|
<valuelist type="QVariantList" key="CMakeProjectManager.MakeStep.BuildTargets">
|
||||||
|
<value type="QString">clean</value>
|
||||||
|
</valuelist>
|
||||||
|
<value type="bool" key="ProjectExplorer.BuildStep.Enabled">true</value>
|
||||||
|
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">CMake Build</value>
|
||||||
|
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
|
||||||
|
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">CMakeProjectManager.MakeStep</value>
|
||||||
|
</valuemap>
|
||||||
|
<value type="int" key="ProjectExplorer.BuildStepList.StepsCount">1</value>
|
||||||
|
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Clean</value>
|
||||||
|
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
|
||||||
|
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.BuildSteps.Clean</value>
|
||||||
|
</valuemap>
|
||||||
|
<value type="int" key="ProjectExplorer.BuildConfiguration.BuildStepListCount">2</value>
|
||||||
|
<value type="bool" key="ProjectExplorer.BuildConfiguration.ClearSystemEnvironment">false</value>
|
||||||
|
<valuelist type="QVariantList" key="ProjectExplorer.BuildConfiguration.UserEnvironmentChanges"/>
|
||||||
|
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Release with Debug Information</value>
|
||||||
|
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName">Release with Debug Information</value>
|
||||||
|
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">CMakeProjectManager.CMakeBuildConfiguration</value>
|
||||||
|
</valuemap>
|
||||||
|
<valuemap type="QVariantMap" key="ProjectExplorer.Target.BuildConfiguration.4">
|
||||||
|
<valuelist type="QVariantList" key="CMake.Configuration">
|
||||||
|
<value type="QString">CMAKE_BUILD_TYPE:STRING=MinSizeRel</value>
|
||||||
|
</valuelist>
|
||||||
|
<value type="QString" key="ProjectExplorer.BuildConfiguration.BuildDirectory">/data/OpenDroneMap/modules/build-odm_filterpoints-Desktop-Minimum Size Release</value>
|
||||||
|
<valuemap type="QVariantMap" key="ProjectExplorer.BuildConfiguration.BuildStepList.0">
|
||||||
|
<valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.0">
|
||||||
|
<value type="QString" key="CMakeProjectManager.MakeStep.AdditionalArguments"></value>
|
||||||
|
<valuelist type="QVariantList" key="CMakeProjectManager.MakeStep.BuildTargets">
|
||||||
|
<value type="QString">all</value>
|
||||||
|
</valuelist>
|
||||||
|
<value type="bool" key="ProjectExplorer.BuildStep.Enabled">true</value>
|
||||||
|
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">CMake Build</value>
|
||||||
|
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
|
||||||
|
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">CMakeProjectManager.MakeStep</value>
|
||||||
|
</valuemap>
|
||||||
|
<value type="int" key="ProjectExplorer.BuildStepList.StepsCount">1</value>
|
||||||
|
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Build</value>
|
||||||
|
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
|
||||||
|
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.BuildSteps.Build</value>
|
||||||
|
</valuemap>
|
||||||
|
<valuemap type="QVariantMap" key="ProjectExplorer.BuildConfiguration.BuildStepList.1">
|
||||||
|
<valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.0">
|
||||||
|
<value type="QString" key="CMakeProjectManager.MakeStep.AdditionalArguments"></value>
|
||||||
|
<valuelist type="QVariantList" key="CMakeProjectManager.MakeStep.BuildTargets">
|
||||||
|
<value type="QString">clean</value>
|
||||||
|
</valuelist>
|
||||||
|
<value type="bool" key="ProjectExplorer.BuildStep.Enabled">true</value>
|
||||||
|
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">CMake Build</value>
|
||||||
|
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
|
||||||
|
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">CMakeProjectManager.MakeStep</value>
|
||||||
|
</valuemap>
|
||||||
|
<value type="int" key="ProjectExplorer.BuildStepList.StepsCount">1</value>
|
||||||
|
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Clean</value>
|
||||||
|
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
|
||||||
|
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.BuildSteps.Clean</value>
|
||||||
|
</valuemap>
|
||||||
|
<value type="int" key="ProjectExplorer.BuildConfiguration.BuildStepListCount">2</value>
|
||||||
|
<value type="bool" key="ProjectExplorer.BuildConfiguration.ClearSystemEnvironment">false</value>
|
||||||
|
<valuelist type="QVariantList" key="ProjectExplorer.BuildConfiguration.UserEnvironmentChanges"/>
|
||||||
|
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Minimum Size Release</value>
|
||||||
|
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName">Minimum Size Release</value>
|
||||||
|
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">CMakeProjectManager.CMakeBuildConfiguration</value>
|
||||||
|
</valuemap>
|
||||||
|
<value type="int" key="ProjectExplorer.Target.BuildConfigurationCount">5</value>
|
||||||
|
<valuemap type="QVariantMap" key="ProjectExplorer.Target.DeployConfiguration.0">
|
||||||
|
<valuemap type="QVariantMap" key="ProjectExplorer.BuildConfiguration.BuildStepList.0">
|
||||||
|
<value type="int" key="ProjectExplorer.BuildStepList.StepsCount">0</value>
|
||||||
|
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Deploy</value>
|
||||||
|
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
|
||||||
|
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.BuildSteps.Deploy</value>
|
||||||
|
</valuemap>
|
||||||
|
<value type="int" key="ProjectExplorer.BuildConfiguration.BuildStepListCount">1</value>
|
||||||
|
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Deploy Configuration</value>
|
||||||
|
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
|
||||||
|
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.DefaultDeployConfiguration</value>
|
||||||
|
</valuemap>
|
||||||
|
<value type="int" key="ProjectExplorer.Target.DeployConfigurationCount">1</value>
|
||||||
|
<valuemap type="QVariantMap" key="ProjectExplorer.Target.PluginSettings"/>
|
||||||
|
<valuemap type="QVariantMap" key="ProjectExplorer.Target.RunConfiguration.0">
|
||||||
|
<value type="bool" key="Analyzer.QmlProfiler.AggregateTraces">false</value>
|
||||||
|
<value type="bool" key="Analyzer.QmlProfiler.FlushEnabled">false</value>
|
||||||
|
<value type="uint" key="Analyzer.QmlProfiler.FlushInterval">1000</value>
|
||||||
|
<value type="QString" key="Analyzer.QmlProfiler.LastTraceFile"></value>
|
||||||
|
<value type="bool" key="Analyzer.QmlProfiler.Settings.UseGlobalSettings">true</value>
|
||||||
|
<valuelist type="QVariantList" key="Analyzer.Valgrind.AddedSuppressionFiles"/>
|
||||||
|
<value type="bool" key="Analyzer.Valgrind.Callgrind.CollectBusEvents">false</value>
|
||||||
|
<value type="bool" key="Analyzer.Valgrind.Callgrind.CollectSystime">false</value>
|
||||||
|
<value type="bool" key="Analyzer.Valgrind.Callgrind.EnableBranchSim">false</value>
|
||||||
|
<value type="bool" key="Analyzer.Valgrind.Callgrind.EnableCacheSim">false</value>
|
||||||
|
<value type="bool" key="Analyzer.Valgrind.Callgrind.EnableEventToolTips">true</value>
|
||||||
|
<value type="double" key="Analyzer.Valgrind.Callgrind.MinimumCostRatio">0.01</value>
|
||||||
|
<value type="double" key="Analyzer.Valgrind.Callgrind.VisualisationMinimumCostRatio">10</value>
|
||||||
|
<value type="bool" key="Analyzer.Valgrind.FilterExternalIssues">true</value>
|
||||||
|
<value type="int" key="Analyzer.Valgrind.LeakCheckOnFinish">1</value>
|
||||||
|
<value type="int" key="Analyzer.Valgrind.NumCallers">25</value>
|
||||||
|
<valuelist type="QVariantList" key="Analyzer.Valgrind.RemovedSuppressionFiles"/>
|
||||||
|
<value type="int" key="Analyzer.Valgrind.SelfModifyingCodeDetection">1</value>
|
||||||
|
<value type="bool" key="Analyzer.Valgrind.Settings.UseGlobalSettings">true</value>
|
||||||
|
<value type="bool" key="Analyzer.Valgrind.ShowReachable">false</value>
|
||||||
|
<value type="bool" key="Analyzer.Valgrind.TrackOrigins">true</value>
|
||||||
|
<value type="QString" key="Analyzer.Valgrind.ValgrindExecutable">valgrind</value>
|
||||||
|
<valuelist type="QVariantList" key="Analyzer.Valgrind.VisibleErrorKinds">
|
||||||
|
<value type="int">0</value>
|
||||||
|
<value type="int">1</value>
|
||||||
|
<value type="int">2</value>
|
||||||
|
<value type="int">3</value>
|
||||||
|
<value type="int">4</value>
|
||||||
|
<value type="int">5</value>
|
||||||
|
<value type="int">6</value>
|
||||||
|
<value type="int">7</value>
|
||||||
|
<value type="int">8</value>
|
||||||
|
<value type="int">9</value>
|
||||||
|
<value type="int">10</value>
|
||||||
|
<value type="int">11</value>
|
||||||
|
<value type="int">12</value>
|
||||||
|
<value type="int">13</value>
|
||||||
|
<value type="int">14</value>
|
||||||
|
</valuelist>
|
||||||
|
<value type="int" key="PE.EnvironmentAspect.Base">2</value>
|
||||||
|
<valuelist type="QVariantList" key="PE.EnvironmentAspect.Changes"/>
|
||||||
|
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">odm_filterpoints</value>
|
||||||
|
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
|
||||||
|
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">CMakeProjectManager.CMakeRunConfiguration.odm_filterpoints
|
||||||
|
/data/OpenDroneMap/modules/odm_filterpoints/</value>
|
||||||
|
<value type="QString" key="RunConfiguration.Arguments">-inputFile /data/drone/brighton/smvs/orig.ply -outputFile /data/drone/brighton/smvs/out.ply -verbose</value>
|
||||||
|
<value type="uint" key="RunConfiguration.QmlDebugServerPort">3768</value>
|
||||||
|
<value type="bool" key="RunConfiguration.UseCppDebugger">false</value>
|
||||||
|
<value type="bool" key="RunConfiguration.UseCppDebuggerAuto">true</value>
|
||||||
|
<value type="bool" key="RunConfiguration.UseMultiProcess">false</value>
|
||||||
|
<value type="bool" key="RunConfiguration.UseQmlDebugger">false</value>
|
||||||
|
<value type="bool" key="RunConfiguration.UseQmlDebuggerAuto">true</value>
|
||||||
|
<value type="QString" key="RunConfiguration.WorkingDirectory"></value>
|
||||||
|
<value type="QString" key="RunConfiguration.WorkingDirectory.default">/data/OpenDroneMap/modules/build-odm_filterpoints-Desktop-Default</value>
|
||||||
|
</valuemap>
|
||||||
|
<value type="int" key="ProjectExplorer.Target.RunConfigurationCount">1</value>
|
||||||
|
</valuemap>
|
||||||
|
</data>
|
||||||
|
<data>
|
||||||
|
<variable>ProjectExplorer.Project.TargetCount</variable>
|
||||||
|
<value type="int">1</value>
|
||||||
|
</data>
|
||||||
|
<data>
|
||||||
|
<variable>ProjectExplorer.Project.Updater.FileVersion</variable>
|
||||||
|
<value type="int">20</value>
|
||||||
|
</data>
|
||||||
|
<data>
|
||||||
|
<variable>Version</variable>
|
||||||
|
<value type="int">20</value>
|
||||||
|
</data>
|
||||||
|
</qtcreator>
|
|
@ -314,6 +314,14 @@ def config():
|
||||||
default=False,
|
default=False,
|
||||||
help='Export the georeferenced point cloud in LAS format. Default: %(default)s')
|
help='Export the georeferenced point cloud in LAS format. Default: %(default)s')
|
||||||
|
|
||||||
|
parser.add_argument('--pc-maxsd',
|
||||||
|
metavar='<positive float>',
|
||||||
|
type=float,
|
||||||
|
default=2.5,
|
||||||
|
help='Filters the point cloud by removing points that deviate more than maxsd standard deviations from the local mean. Set to 0 to disable filtering.'
|
||||||
|
'\nDefault: '
|
||||||
|
'%(default)s')
|
||||||
|
|
||||||
parser.add_argument('--texturing-data-term',
|
parser.add_argument('--texturing-data-term',
|
||||||
metavar='<string>',
|
metavar='<string>',
|
||||||
default='gmi',
|
default='gmi',
|
||||||
|
@ -420,14 +428,6 @@ def config():
|
||||||
help='DSM/DTM resolution in cm / pixel.'
|
help='DSM/DTM resolution in cm / pixel.'
|
||||||
'\nDefault: %(default)s')
|
'\nDefault: %(default)s')
|
||||||
|
|
||||||
parser.add_argument('--dem-maxsd',
|
|
||||||
metavar='<positive float>',
|
|
||||||
type=float,
|
|
||||||
default=2.5,
|
|
||||||
help='Points that deviate more than maxsd standard deviations from the local mean '
|
|
||||||
'are discarded. \nDefault: '
|
|
||||||
'%(default)s')
|
|
||||||
|
|
||||||
parser.add_argument('--dem-decimation',
|
parser.add_argument('--dem-decimation',
|
||||||
metavar='<positive integer>',
|
metavar='<positive integer>',
|
||||||
default=1,
|
default=1,
|
||||||
|
|
|
@ -56,7 +56,6 @@ def create_dems(filenames, demtype, radius=['0.56'], gapfill=False,
|
||||||
|
|
||||||
|
|
||||||
def create_dem(filenames, demtype, radius, decimation=None,
|
def create_dem(filenames, demtype, radius, decimation=None,
|
||||||
maxsd=None, maxz=None,
|
|
||||||
products=['idw'], outdir='', suffix='', verbose=False, resolution=0.1):
|
products=['idw'], outdir='', suffix='', verbose=False, resolution=0.1):
|
||||||
""" Create DEM from collection of LAS files """
|
""" Create DEM from collection of LAS files """
|
||||||
start = datetime.now()
|
start = datetime.now()
|
||||||
|
@ -71,10 +70,6 @@ def create_dem(filenames, demtype, radius, decimation=None,
|
||||||
# JSON pipeline
|
# JSON pipeline
|
||||||
json = pdal.json_gdal_base(bname, products, radius, resolution)
|
json = pdal.json_gdal_base(bname, products, radius, resolution)
|
||||||
|
|
||||||
# A DSM for meshing does not use additional filters
|
|
||||||
if demtype != 'mesh_dsm':
|
|
||||||
json = pdal.json_add_filters(json, maxsd, maxz)
|
|
||||||
|
|
||||||
if demtype == 'dsm':
|
if demtype == 'dsm':
|
||||||
json = pdal.json_add_classification_filter(json, 2, equality='max')
|
json = pdal.json_add_classification_filter(json, 2, equality='max')
|
||||||
elif demtype == 'dtm':
|
elif demtype == 'dtm':
|
||||||
|
|
|
@ -102,75 +102,6 @@ def json_add_classification_filter(json, classification, equality="equals"):
|
||||||
return json
|
return json
|
||||||
|
|
||||||
|
|
||||||
def json_add_maxsd_filter(json, meank=20, thresh=3.0):
|
|
||||||
""" Add outlier Filter element and return """
|
|
||||||
json['pipeline'].insert(0, {
|
|
||||||
'type': 'filters.outlier',
|
|
||||||
'method': 'statistical',
|
|
||||||
'mean_k': meank,
|
|
||||||
'multiplier': thresh
|
|
||||||
})
|
|
||||||
return json
|
|
||||||
|
|
||||||
|
|
||||||
def json_add_maxz_filter(json, maxz):
|
|
||||||
""" Add max elevation Filter element and return """
|
|
||||||
json['pipeline'].insert(0, {
|
|
||||||
'type': 'filters.range',
|
|
||||||
'limits': 'Z[:{0}]'.format(maxz)
|
|
||||||
})
|
|
||||||
|
|
||||||
return json
|
|
||||||
|
|
||||||
|
|
||||||
def json_add_maxangle_filter(json, maxabsangle):
|
|
||||||
""" Add scan angle Filter element and return """
|
|
||||||
json['pipeline'].insert(0, {
|
|
||||||
'type': 'filters.range',
|
|
||||||
'limits': 'ScanAngleRank[{0}:{1}]'.format(str(-float(maxabsangle)), maxabsangle)
|
|
||||||
})
|
|
||||||
return json
|
|
||||||
|
|
||||||
|
|
||||||
def json_add_scanedge_filter(json, value):
|
|
||||||
""" Add EdgeOfFlightLine Filter element and return """
|
|
||||||
json['pipeline'].insert(0, {
|
|
||||||
'type': 'filters.range',
|
|
||||||
'limits': 'EdgeOfFlightLine[{0}:{0}]'.format(value)
|
|
||||||
})
|
|
||||||
return json
|
|
||||||
|
|
||||||
|
|
||||||
def json_add_returnnum_filter(json, value):
|
|
||||||
""" Add ReturnNum Filter element and return """
|
|
||||||
json['pipeline'].insert(0, {
|
|
||||||
'type': 'filters.range',
|
|
||||||
'limits': 'ReturnNum[{0}:{0}]'.format(value)
|
|
||||||
})
|
|
||||||
return json
|
|
||||||
|
|
||||||
|
|
||||||
def json_add_filters(json, maxsd=None, maxz=None, maxangle=None, returnnum=None):
|
|
||||||
if maxsd is not None:
|
|
||||||
json = json_add_maxsd_filter(json, thresh=maxsd)
|
|
||||||
if maxz is not None:
|
|
||||||
json = json_add_maxz_filter(json, maxz)
|
|
||||||
if maxangle is not None:
|
|
||||||
json = json_add_maxangle_filter(json, maxangle)
|
|
||||||
if returnnum is not None:
|
|
||||||
json = json_add_returnnum_filter(json, returnnum)
|
|
||||||
return json
|
|
||||||
|
|
||||||
|
|
||||||
def json_add_crop_filter(json, wkt):
|
|
||||||
""" Add cropping polygon as Filter Element and return """
|
|
||||||
json['pipeline'].insert(0, {
|
|
||||||
'type': 'filters.crop',
|
|
||||||
'polygon': wkt
|
|
||||||
})
|
|
||||||
return json
|
|
||||||
|
|
||||||
|
|
||||||
def is_ply_file(filename):
|
def is_ply_file(filename):
|
||||||
_, ext = os.path.splitext(filename)
|
_, ext = os.path.splitext(filename)
|
||||||
return ext.lower() == '.ply'
|
return ext.lower() == '.ply'
|
||||||
|
|
|
@ -0,0 +1,54 @@
|
||||||
|
import os, sys
|
||||||
|
from opendm import system
|
||||||
|
from opendm import log
|
||||||
|
from opendm import context
|
||||||
|
|
||||||
|
def filter(pointCloudPath, standard_deviation=2.5, meank=16, verbose=False):
|
||||||
|
"""
|
||||||
|
Filters a point cloud in place (it will replace the input file with the filtered result).
|
||||||
|
"""
|
||||||
|
if standard_deviation <= 0 or meank <= 0:
|
||||||
|
log.ODM_INFO("Skipping point cloud filtering")
|
||||||
|
return
|
||||||
|
|
||||||
|
log.ODM_INFO("Filtering point cloud (statistical, meanK {}, standard deviation {})".format(meank, standard_deviation))
|
||||||
|
|
||||||
|
if not os.path.exists(pointCloudPath):
|
||||||
|
log.ODM_ERROR("{} does not exist, cannot filter point cloud. The program will now exit.".format(pointCloudPath))
|
||||||
|
sys.exit(1)
|
||||||
|
|
||||||
|
filter_program = os.path.join(context.odm_modules_path, 'odm_filterpoints')
|
||||||
|
if not os.path.exists(filter_program):
|
||||||
|
log.ODM_WARNING("{} program not found. Will skip filtering, but this installation should be fixed.")
|
||||||
|
return
|
||||||
|
|
||||||
|
pc_path, pc_filename = os.path.split(pointCloudPath)
|
||||||
|
# pc_path = path/to
|
||||||
|
# pc_filename = pointcloud.ply
|
||||||
|
|
||||||
|
basename, ext = os.path.splitext(pc_filename)
|
||||||
|
# basename = pointcloud
|
||||||
|
# ext = .ply
|
||||||
|
|
||||||
|
tmpPointCloud = os.path.join(pc_path, "{}.tmp{}".format(basename, ext))
|
||||||
|
|
||||||
|
filterArgs = {
|
||||||
|
'bin': filter_program,
|
||||||
|
'inputFile': pointCloudPath,
|
||||||
|
'outputFile': tmpPointCloud,
|
||||||
|
'sd': standard_deviation,
|
||||||
|
'meank': meank,
|
||||||
|
'verbose': '--verbose' if verbose else '',
|
||||||
|
}
|
||||||
|
|
||||||
|
system.run('{bin} -inputFile {inputFile} '
|
||||||
|
'-outputFile {outputFile} '
|
||||||
|
'-sd {sd} '
|
||||||
|
'-meank {meank} {verbose} '.format(**filterArgs))
|
||||||
|
|
||||||
|
# Remove input file, swap temp file
|
||||||
|
if os.path.exists(tmpPointCloud):
|
||||||
|
os.remove(pointCloudPath)
|
||||||
|
os.rename(tmpPointCloud, pointCloudPath)
|
||||||
|
else:
|
||||||
|
log.ODM_WARNING("{} not found, filtering has failed.".format(tmpPointCloud))
|
|
@ -93,7 +93,6 @@ class ODMDEMCell(ecto.Cell):
|
||||||
gapfill=True,
|
gapfill=True,
|
||||||
outdir=odm_dem_root,
|
outdir=odm_dem_root,
|
||||||
resolution=resolution / 100.0,
|
resolution=resolution / 100.0,
|
||||||
maxsd=args.dem_maxsd,
|
|
||||||
decimation=args.dem_decimation,
|
decimation=args.dem_decimation,
|
||||||
verbose=args.verbose,
|
verbose=args.verbose,
|
||||||
max_workers=get_max_concurrency_for_dem(args.max_concurrency,tree.odm_georeferencing_model_laz)
|
max_workers=get_max_concurrency_for_dem(args.max_concurrency,tree.odm_georeferencing_model_laz)
|
||||||
|
|
|
@ -9,6 +9,7 @@ from opendm import types
|
||||||
from opendm import system
|
from opendm import system
|
||||||
from opendm import context
|
from opendm import context
|
||||||
from opendm.cropper import Cropper
|
from opendm.cropper import Cropper
|
||||||
|
from opendm import point_cloud
|
||||||
|
|
||||||
|
|
||||||
class ODMGeoreferencingCell(ecto.Cell):
|
class ODMGeoreferencingCell(ecto.Cell):
|
||||||
|
|
|
@ -170,6 +170,9 @@ class ODMOpenSfMCell(ecto.Cell):
|
||||||
if args.fast_orthophoto:
|
if args.fast_orthophoto:
|
||||||
system.run('PYTHONPATH=%s %s/bin/opensfm export_ply --no-cameras %s' %
|
system.run('PYTHONPATH=%s %s/bin/opensfm export_ply --no-cameras %s' %
|
||||||
(context.pyopencv_path, context.opensfm_path, tree.opensfm))
|
(context.pyopencv_path, context.opensfm_path, tree.opensfm))
|
||||||
|
|
||||||
|
# Filter
|
||||||
|
point_cloud.filter(os.path.join(tree.opensfm, 'reconstruction.ply'), standard_deviation=args.pc_maxsd, verbose=args.verbose)
|
||||||
elif args.use_opensfm_dense:
|
elif args.use_opensfm_dense:
|
||||||
# Undistort images at full scale in JPG
|
# Undistort images at full scale in JPG
|
||||||
# (TODO: we could compare the size of the PNGs if they are < than depthmap_resolution
|
# (TODO: we could compare the size of the PNGs if they are < than depthmap_resolution
|
||||||
|
@ -179,6 +182,8 @@ class ODMOpenSfMCell(ecto.Cell):
|
||||||
system.run('PYTHONPATH=%s %s/bin/opensfm compute_depthmaps %s' %
|
system.run('PYTHONPATH=%s %s/bin/opensfm compute_depthmaps %s' %
|
||||||
(context.pyopencv_path, context.opensfm_path, tree.opensfm))
|
(context.pyopencv_path, context.opensfm_path, tree.opensfm))
|
||||||
|
|
||||||
|
# Filter
|
||||||
|
point_cloud.filter(tree.opensfm_model, standard_deviation=args.pc_maxsd, verbose=args.verbose)
|
||||||
else:
|
else:
|
||||||
log.ODM_WARNING('Found a valid OpenSfM reconstruction file in: %s' %
|
log.ODM_WARNING('Found a valid OpenSfM reconstruction file in: %s' %
|
||||||
tree.opensfm_reconstruction)
|
tree.opensfm_reconstruction)
|
||||||
|
|
|
@ -4,6 +4,7 @@ from opendm import log
|
||||||
from opendm import io
|
from opendm import io
|
||||||
from opendm import system
|
from opendm import system
|
||||||
from opendm import context
|
from opendm import context
|
||||||
|
from opendm import point_cloud
|
||||||
|
|
||||||
|
|
||||||
class ODMSmvsCell(ecto.Cell):
|
class ODMSmvsCell(ecto.Cell):
|
||||||
|
@ -91,6 +92,9 @@ class ODMSmvsCell(ecto.Cell):
|
||||||
old_file = smvs_files[-1]
|
old_file = smvs_files[-1]
|
||||||
if not (io.rename_file(old_file, tree.smvs_model)):
|
if not (io.rename_file(old_file, tree.smvs_model)):
|
||||||
log.ODM_WARNING("File %s does not exist, cannot be renamed. " % old_file)
|
log.ODM_WARNING("File %s does not exist, cannot be renamed. " % old_file)
|
||||||
|
|
||||||
|
# Filter
|
||||||
|
point_cloud.filter(tree.smvs_model, standard_deviation=args.pc_maxsd, verbose=args.verbose)
|
||||||
else:
|
else:
|
||||||
log.ODM_WARNING("Cannot find a valid point cloud (smvs-XX.ply) in %s. Check the console output for errors." % tree.smvs)
|
log.ODM_WARNING("Cannot find a valid point cloud (smvs-XX.ply) in %s. Check the console output for errors." % tree.smvs)
|
||||||
else:
|
else:
|
||||||
|
|
Ładowanie…
Reference in New Issue