MarkerBasedWatershed3d
Performs a fast determination of the watershed lines in a three-dimensional grayscale image from a predefined set of markers.
Access to parameter description
For an introduction:
It determines the crest lines separating the markers.
Three ways of presenting the resulting image are provided:
See also
See related example
Access to parameter description
For an introduction:
- section Image Segmentation
- section Introduction To Watershed
It determines the crest lines separating the markers.
Three ways of presenting the resulting image are provided:
- Crest lines are output in a binary image.
- Marked basins are output in a label image with crest lines considered as background.
- Marked basins are output in a label image with crest lines filled by a marker value.
See also
See related example
Function Syntax
This function returns outputImage.
// Function prototype
std::shared_ptr< iolink::ImageView > markerBasedWatershed3d( std::shared_ptr< iolink::ImageView > inputGrayImage, std::shared_ptr< iolink::ImageView > inputMarkerImage, MarkerBasedWatershed3d::AlgorithmMode algorithmMode, MarkerBasedWatershed3d::OutputType outputType, MarkerBasedWatershed3d::Neighborhood neighborhood, std::shared_ptr< iolink::ImageView > outputImage = NULL );
Class Syntax
Parameters
Parameter Name | Description | Type | Supported Values | Default Value | |||||||
---|---|---|---|---|---|---|---|---|---|---|---|
![]() |
inputGrayImage |
The input grayscale image representing the landscape of the watershed. | Image | Grayscale | nullptr | ||||||
![]() |
inputMarkerImage |
The input label image of markers. | Image | Label | nullptr | ||||||
![]() |
algorithmMode |
The mode for applying the watershed algorithm.
|
Enumeration | REPEATABLE | |||||||
![]() |
outputType |
The type of output image.
|
Enumeration | SEPARATED_REGIONS | |||||||
![]() |
neighborhood |
The 3D neighborhood configuration defining the connected components.
|
Enumeration | CONNECTIVITY_26 | |||||||
![]() |
outputImage |
The output binary image. Its dimensions are forced to the same values as the input image. Its type depends on the selected outputType and potentially on the highest label of the inputMarkerImage. | Image | nullptr |
Object Examples
auto foam = readVipImage( std::string( IMAGEDEVDATA_IMAGES_FOLDER ) + "foam.vip" ); auto foam_sep_label = readVipImage( std::string( IMAGEDEVDATA_IMAGES_FOLDER ) + "foam_sep_label.vip" ); MarkerBasedWatershed3d markerBasedWatershed3dAlgo; markerBasedWatershed3dAlgo.setInputGrayImage( foam ); markerBasedWatershed3dAlgo.setInputMarkerImage( foam_sep_label ); markerBasedWatershed3dAlgo.setAlgorithmMode( MarkerBasedWatershed3d::AlgorithmMode::REPEATABLE ); markerBasedWatershed3dAlgo.setOutputType( MarkerBasedWatershed3d::OutputType::LINES ); markerBasedWatershed3dAlgo.setNeighborhood( MarkerBasedWatershed3d::Neighborhood::CONNECTIVITY_26 ); markerBasedWatershed3dAlgo.execute(); std::cout << "outputImage:" << markerBasedWatershed3dAlgo.outputImage()->toString();
Function Examples
auto foam = readVipImage( std::string( IMAGEDEVDATA_IMAGES_FOLDER ) + "foam.vip" ); auto foam_sep_label = readVipImage( std::string( IMAGEDEVDATA_IMAGES_FOLDER ) + "foam_sep_label.vip" ); auto result = markerBasedWatershed3d( foam, foam_sep_label, MarkerBasedWatershed3d::AlgorithmMode::REPEATABLE, MarkerBasedWatershed3d::OutputType::LINES, MarkerBasedWatershed3d::Neighborhood::CONNECTIVITY_26 ); std::cout << "outputImage:" << result->toString();