![]() |
ImFusion C++ SDK 4.5.0
|
#include <ImFusion/CT/ProjectionMatrixIoAlgorithm.h>
I/O algorithm for saving and loading projection matrices. More...
I/O algorithm for saving and loading projection matrices.
Handles projection matrix export/import for cone-beam geometries. Supports ConeBeamData (SharedImageSet with geometry) and ConeBeamGeometry instances.
Supported Formats:
Public Types | |
| enum class | Mode { Load = 0 , Save = 1 } |
| IO mode of the algorithm. | |
| enum class | MatrixSerializationFormat { OpenCV = 0 , OpenGL = 1 , AllIsoMatrices = 2 , Ini = 3 , All = 4 } |
| Matrix formats to be used for serialization. More... | |
| enum class | ProjectionCoordinateSpace { PixelSpace = 0 , ImageSpace = 1 } |
| Specifies the coordinate space that the OpenCV projection matrix transforms onto. More... | |
| enum class | FlipDirection { None = 0 , X = 1 , Y = 2 } |
| Specifies the flipping direction in image space to apply to the OpenCV matrix when det(R) < 0 is detected. More... | |
| Public Types inherited from ImFusion::Algorithm | |
| enum | Status { Unknown = -1 , Success = 0 , Error = 1 , InvalidInput , IncompleteInput , OutOfMemoryHost , OutOfMemoryGPU , UnsupportedGPU , UnknownAction , AbortedByUser , User = 1000 } |
| Status codes. More... | |
Public Member Functions | |
| ProjectionMatrixIoAlgorithm (SharedImageSet &sis) | |
| ProjectionMatrixIoAlgorithm (std::vector< GeometryUtils::FullGeometryRepresentation > *geom) | |
| ProjectionMatrixIoAlgorithm (ConeBeamGeometry *geom) | |
| SharedImageSet * | coneBeamData () |
| Access to the ConeBeamData instance. | |
| ConeBeamGeometry * | legacyGeometry () |
| Access to the legacy ConeBeamGeometry instance. | |
| std::vector< CT::GeometryUtils::FullGeometryRepresentation > * | geometry () |
| Access to the per-frame geometry instance. | |
| bool | usingLegacyGeometry () |
| Getter for the flag showing whether legacy geometry is used. | |
| Public Member Functions inherited from ImFusion::Algorithm | |
| Algorithm () | |
| Default constructor will registers a single "compute" action that calls compute() and returns status(). | |
| virtual OwningDataList | takeOutput () |
| Return any new Data that was created by the Algorithm during the last call to compute(). | |
| virtual void | setProgress (Progress *progress) |
| Sets a Progress interface the algorithm can use to notify observers about its computing progress. | |
| Progress * | progress () const |
| Returns the progress interface if set. | |
| virtual int | status () const |
| Indicates the status of the last call to compute(). | |
| virtual bool | survivesDataDeletion (const Data *) const |
| Indicates whether the algorithm can handle (partial) deletion of the specified data, by default this checks whether the data is in the input list. | |
| const FactoryInfo & | factoryInfo () const |
| Returns the record describing how this Algorithm was instantiated by the AlgorithmFactory. | |
| void | setFactoryInfo (const FactoryInfo &value) |
| Sets the record describing how this Algorithm was instantiated by the AlgorithmFactory. | |
| Status | runAction (const std::string &id) |
| Run the action with name id if it exists. | |
| const std::vector< Action > & | actions () |
| Get a mapping from Action id to Action as registered in this algorithm. | |
| Public Member Functions inherited from ImFusion::Configurable | |
| virtual void | configure (const Properties *p) |
| Configure this object instance by de-serializing the given Properties. | |
| virtual void | configuration (Properties *p) const |
| Serialize the current object configuration into the given Properties object. | |
| virtual void | configureDefaults () |
| Retrieve the properties of this object, replaces values with their defaults and sets it again. | |
| void | registerParameter (ParameterBase *param) |
| Register the given Parameter or SubProperty, so that it will be configured during configure()/configuration(). | |
| void | unregisterParameter (const ParameterBase *param) |
| Remove the given Parameter or SubProperty from the list of registered parameters. | |
| Configurable (const Configurable &rhs) | |
| Configurable (Configurable &&rhs) noexcept | |
| Configurable & | operator= (const Configurable &) |
| Configurable & | operator= (Configurable &&) noexcept |
Public Attributes | |
| Parameter< Mode > | p_mode = {"mode", Mode::Load, this} |
| Mode can be either Mode::Load or Mode::Save. | |
| Parameter< Filesystem::Path > | p_path = {"path", Filesystem::Path(""), this} |
| Path used to load or save the projection matrices Path is used as a filepath with Mode::Load or as a directory path with Mode::Save. | |
| Parameter< std::string > | p_outputFilename = {"outputFilename", "", this} |
| Optional filename used to save the projection matrices. | |
| Parameter< MatrixSerializationFormat > | p_matrixFormat = {"matrixFormat", MatrixSerializationFormat::OpenCV, this} |
| Matrix serialization format to load and save the projection matrices. | |
| Parameter< int > | p_frames = {"frames", 0, this} |
| Frames of the CBCT projection images. | |
| Parameter< int > | p_width = {"width", 0, this} |
| Width of the CBCT projection images in pixels. This value should be set when constructed from geometries. | |
| Parameter< int > | p_height = {"height", 0, this} |
| Height of the CBCT projection images in pixels. This value should be set when constructed from geometries. | |
| Parameter< vec2 > | p_pixelSpacing = {"pixelSpacing", vec2({1.0, 1.0}), this} |
| Pixel spacing of the CBCT projection images in mm. | |
| Parameter< ProjectionCoordinateSpace > | p_projectionCoordinateSpace = {"projectionCoordinateSpace", ProjectionCoordinateSpace::PixelSpace, this} |
| Projection coordinate space for MatrixSerializationFormat::OpenCV can be either ProjectionCoordinateSpace::PixelSpace or ProjectionCoordinateSpace::ImageSpace. | |
| Parameter< FlipDirection > | p_flipDirection = {"flipDirection", FlipDirection::None, this} |
| OpenCV projection matrices should be flipped when they do not follow the OpenCV convention. | |
| Public Attributes inherited from ImFusion::Algorithm | |
| Signal | signalOutputChanged |
| Signal should be emitted by Algorithms when their output/result has changed. | |
| Signal | signalParametersChanged |
| Signal should be emitted by Algorithms when their parameter configuration has changed. | |
| Public Attributes inherited from ImFusion::Configurable | |
| Signal | signalParametersChanged |
| Emitted whenever one of the registered Parameters' or SubPropertys' signalValueChanged signal was emitted. | |
Algorithm interface methods | |
| void | compute () override |
| Execute the algorithm. | |
| static bool | createCompatible (const DataList &data, Algorithm **alg) |
Additional Inherited Members | |
| Static Public Member Functions inherited from ImFusion::Algorithm | |
| static bool | createCompatible (const DataList &data, Algorithm **a=nullptr) |
| Factory function to check algorithm compatibility with input data and optionally instantiate it. | |
| Protected Member Functions inherited from ImFusion::Algorithm | |
| void | loadDefaults () |
| void | registerAction (const std::string &id, const std::string &guiName, const std::function< Algorithm::Status(void)> &action) |
| Register an action to be run via runAction. | |
| template<typename D> | |
| void | registerAction (const std::string &id, const std::string &guiName, Algorithm::Status(D::*action)(void)) |
| Template version of runAction that can be used with a pointer to a member function. | |
| void | registerAction (const Action &action) |
| Register an action. | |
| Protected Attributes inherited from ImFusion::Algorithm | |
| std::string | m_name |
| Algorithm name. | |
| Progress * | m_progress = nullptr |
| Non-owing pointer to a progress interface. May be a nullptr. | |
| FactoryInfo | m_factoryInfo = {} |
| Record describing how this algorithm was instantiated by the AlgorithmFactory. | |
| int | m_status = Status::Unknown |
| Algorithm status after last call to compute(). | |
| std::vector< Action > | m_actions |
| Map of key given by the id of the action, of the available actions of this algorithm. | |
| Protected Attributes inherited from ImFusion::Configurable | |
| std::vector< Param > | m_params |
| List of all registered Parameter and SubProperty instances. | |
|
strong |
Matrix formats to be used for serialization.
| Enumerator | |
|---|---|
| OpenCV | OpenCV projection matrix (3x4 matrix). |
| OpenGL | OpenGL projection matrix (4x4 matrix). |
| AllIsoMatrices | Individual iso-matrices including the shared iso-matrix of the cone-beam geometry. |
| Ini | Ini file format. |
| All | Includes OpenCV, OpenGL, and AllIsoMatrices formats. |
|
strong |
Specifies the coordinate space that the OpenCV projection matrix transforms onto.
| Enumerator | |
|---|---|
| PixelSpace | Projects onto the pixel space. |
| ImageSpace | Projects onto the image space. |
|
strong |
Specifies the flipping direction in image space to apply to the OpenCV matrix when det(R) < 0 is detected.
| Enumerator | |
|---|---|
| None | Automatically apply flipping when det(R) < 0 (default). |
| X | Apply flipping along the x-axis when det(R) < 0. |
| Y | Apply flipping along the y-axis when det(R) < 0. |
|
overridevirtual |
Execute the algorithm.
Implements ImFusion::Algorithm.
| Parameter<std::string> ImFusion::CT::ProjectionMatrixIoAlgorithm::p_outputFilename = {"outputFilename", "", this} |
Optional filename used to save the projection matrices.
If the filename is not provided, default filenames are used, which are "P_CV.txt", "P_GL.txt", and "IsoMatrices.txt".
| Parameter<FlipDirection> ImFusion::CT::ProjectionMatrixIoAlgorithm::p_flipDirection = {"flipDirection", FlipDirection::None, this} |