|
TECA
|
an algorithm that computes connected component labeling More...
#include <teca_connected_components.h>
Public Member Functions | |
| std::shared_ptr< teca_connected_components > | shared_from_this () |
| std::shared_ptr< teca_connected_components const > | shared_from_this () const |
| teca_connected_components (const teca_connected_components &src)=delete | |
| teca_connected_components (teca_connected_components &&src)=delete | |
| teca_connected_components & | operator= (const teca_connected_components &src)=delete |
| teca_connected_components & | operator= (teca_connected_components &&src)=delete |
| const char * | get_class_name () const override |
| void | set_segmentation_variable (const std::string &v) |
| const std::string & | get_segmentation_variable () const |
| void | set_component_variable (const std::string &v) |
| const std::string & | get_component_variable () const |
Public Member Functions inherited from teca_algorithm | |
| teca_algorithm (const teca_algorithm &src)=delete | |
| teca_algorithm (teca_algorithm &&src)=delete | |
| teca_algorithm & | operator= (const teca_algorithm &src)=delete |
| teca_algorithm & | operator= (teca_algorithm &&src)=delete |
| void | set_communicator (MPI_Comm comm) |
| MPI_Comm | get_communicator () |
| virtual teca_algorithm_output_port | get_output_port (unsigned int port=0) |
| void | set_input_connection (const teca_algorithm_output_port &port) |
| virtual void | set_input_connection (unsigned int id, const teca_algorithm_output_port &port) |
| virtual void | remove_input_connection (unsigned int id) |
| void | clear_input_connections () |
| const_p_teca_dataset | get_output_data (unsigned int port=0) |
| void | pop_cache (unsigned int port=0, int top=0) |
| void | set_cache_size (unsigned int n) |
| virtual int | update () |
| virtual int | update (unsigned int port) |
| virtual teca_metadata | update_metadata (unsigned int port=0) |
| void | set_executive (p_teca_algorithm_executive exe) |
| p_teca_algorithm_executive | get_executive () |
| virtual void | to_stream (std::ostream &s) const |
| virtual void | from_stream (std::istream &s) |
Static Public Member Functions | |
| static p_teca_connected_components | New () |
Protected Member Functions | |
| std::string | get_component_variable (const teca_metadata &request) |
| std::string | get_segmentation_variable (const teca_metadata &request) |
Protected Member Functions inherited from teca_algorithm | |
| void | set_number_of_input_connections (unsigned int n) |
| void | set_number_of_output_ports (unsigned int n) |
| virtual void | set_modified () |
| void | set_modified (unsigned int port) |
| virtual teca_metadata | get_cache_key (unsigned int port, const teca_metadata &request) const |
| virtual teca_metadata | get_output_metadata (teca_algorithm_output_port ¤t) |
| virtual const_p_teca_dataset | request_data (teca_algorithm_output_port &port, const teca_metadata &request) |
| virtual int | validate_cache (teca_algorithm_output_port ¤t) |
| virtual void | clear_modified (teca_algorithm_output_port current) |
| const_p_teca_dataset | get_output_data (unsigned int port, const teca_metadata &request) |
| int | cache_output_data (unsigned int port, const teca_metadata &request, const_p_teca_dataset &data) |
| void | clear_cache (unsigned int port) |
| unsigned int | get_number_of_input_connections () |
| teca_algorithm_output_port & | get_input_connection (unsigned int i) |
| void | clear_modified (unsigned int port) |
| int | get_modified (unsigned int port) const |
an algorithm that computes connected component labeling
an algorithm that computes connected component labeling for 1D, 2D, and 3D data. The components are computed from a binary segmentation provided on the input.
the input binary segmentation is labeled and stored in a variable named by the component_variable property. the component ids are added to the output dataset metadata in an key named 'component_ids', and the number of components is stored in a key named 'number_of_components'. These keys facilitate further processing as one need not scan the labeled data to get the list of label ids.
The cells outside of the segmentation (i.e. the background) are always assigned the label 0. The cells belonging to connected regions inside the segmentation are labeled starting from 1 up to number_of_components - 1.
output keys:
number_of_components - number of component ids found. this will always be
at least 1 long as the cells outside the segmentation
are assigned the label 0.
component_ids - a vector containing the label of each component. This is
always starts with 0, where the label 0 identifies cells
out side of the segmentation, and ranges up to
number_of_components - 1, where the labels from 1 up to
number_of_components - 1 identify connected regions of
cells inside the segmentation.
background_id - the label used for cells outside of the segmentation,
i.e. the background. always 0.