34#include "PhotogrammetryOptions.h"
35#include <NDEVR/BaseValues.h>
36#include <NDEVR/Buffer.h>
37#include <NDEVR/File.h>
39#include <NDEVR/String.h>
40#include <NDEVR/Vertex.h>
44#include <unordered_map>
47namespace openMVG {
namespace sfm {
struct SfM_Data; } }
105 class DRONE_PHOTOGRAMMETRY_API PhotogrammetryRunner
138 const openMVG::sfm::SfM_Data& sfm_data,
139 const std::unordered_map<uint32_t, std::array<double, 3>>& gps_lla)
const;
146 bool m_cancel_requested =
false;
149 File m_dense_temp_folder;
The equivelent of std::vector but with a bit more control.
Logic for reading or writing to a file as well as navigating filesystems or other common file operati...
A light-weight wrapper that will be a no-op if there is not a valid log reference,...
Persistent settings for a drone photogrammetry processing run.
void setResultCallback(std::function< void(PhotogrammetryResult)> callback)
Called once when the pipeline finishes successfully with the full result.
void setProgressCallback(std::function< void(PhotogrammetryStage stage, fltp04 fraction)> callback)
Called whenever the active stage or progress within a stage changes.
PhotogrammetryStage lastStage() const
Returns the stage at which the last run ended (e_done, e_cancelled, or e_failed).
void cancel()
Request cancellation. The runner will stop at the next safe checkpoint.
void run()
Run the full pipeline. Blocks the calling thread.
The primary namespace for the NDEVR SDK.
float fltp04
Defines an alias representing a 4 byte floating-point number Bit layout is as follows: -Sign: 1 bit a...
uint8_t uint01
-Defines an alias representing a 1 byte, unsigned integer -Can represent exact integer values 0 throu...
PhotogrammetryStage
Describes which stage of the photogrammetry pipeline is currently running.
@ e_extracting_features
Running per-image feature extraction (SIFT / AKAZE).
@ e_dense_reconstruction
MVS: generating dense point cloud.
@ e_cancelled
User cancelled the run.
@ e_done
Pipeline completed successfully.
@ e_sfm
Structure-from-Motion: recovering camera poses + sparse cloud.
@ e_failed
An error occurred; see log for details.
@ e_matching_features
Finding correspondences between image pairs.
@ e_listing_images
Scanning input folder and reading EXIF metadata.
@ e_building_scene
Converting output into NDEVR DesignObjects.
RGB color for a reconstructed point.
Holds the raw output of a completed photogrammetry run before it is committed to the scene.
Buffer< PhotogrammetryPointColor > point_colors
RGB per point.
Buffer< Matrix< fltp08 > > camera_transforms
One view matrix per recovered image pose.
Buffer< String > camera_image_names
Corresponding image filename per pose.
Buffer< Vertex< 3, fltp08 > > camera_gps_lla
Per-camera GPS [lat, lon, alt] WGS84 (Invalid if no GPS).
Buffer< Vertex< 3, fltp08 > > point_positions
World-space XYZ (double for georef accuracy).
Buffer< Vertex< 3, fltp08 > > sparse_positions
Sparse SfM keypoints in world-space (for debug visualization).