ImageDev

- Getting Started
- ImageDev Python
- ImageDev C#
- ImageDev C++
- Licensing Information
- Redistributable Files
- Processing
- Image Manipulation
- - Synthetic Images
  - - RandomImage2d
    - RandomImage3d
    - RandomGaussianImage2d
    - RandomGaussianImage3d
    - RadialFunctionImage2d
    - RadialFunctionImage3d
    - OrientedLinesImage2d
    - OrientedLinesImage3d
    - RandomSphereImage3d
    - BoxGridImage2d
    - BoxGridImage3d
    - WedgeMaskImage3d
    - PointSpreadFunctionImage3d
  - Image Editing
  - - ConvertImage
    - ResetImage
    - CopyImage
    - PasteImage2d
    - PasteImage3d
    - CropImage2d
    - CropImage3d
    - SampleImage2d
    - SampleImage3d
    - InterlaceFrames2d
    - DeinterlaceFrames2d
  - Stack Operations
  - - SequenceConcatenation
    - SequenceToMultispectral
    - SequenceToVolume
    - VolumeToSequence
    - MultispectralToSequence
    - GetSliceFromVolume3d
    - SetSliceToVolume3d
    - GetObliqueSliceFromVolume3d
    - ImageStackProjection3d
    - VolumeProjection3d
- Geometry And Matching
- - Geometric Transforms
  - - Shearing3d
    - TranslateImage2d
    - TranslateImage3d
    - Flip2d
    - Flip3d
    - FlipImage2d
    - FlipImage3d
    - TransposeImage2d
    - TransposeImage3d
    - SwapQuadrants
    - Rotate2d
    - Rotate3d
    - RotationGenerator3d
    - Resize2d
    - Resize3d
    - RescaleByFactor
    - RescaleImageByFactor
    - ResampleAffine2d
    - ResampleAffine3d
    - ResampleElastic2d
    - SurfaceUnfolding3d
  - Pattern Recognition
  - - BinaryCorrelation2d
    - CrossCorrelation2d
    - CorrelationByDifference2d
    - CorrelationBySignChange2d
  - Registration
  - - ImagePrealignment3d
    - AffineRegistration
    - ElasticRegistration2d
- Arithmetic And Logic
- - Arithmetical Operations
  - - AbsoluteValue
    - AbsoluteMaximumWithImage
    - ArithmeticOperationWithImage
    - ArithmeticOperationWithValue
    - BlendWithImage
    - BlendWithValue
    - DirectionalBlending2d
    - CombineByMask
    - ImageFormula
    - EigenDecomposition2d
    - EigenDecomposition3d
  - Logical Operations
  - - MaskImage
    - LogicalOperationWithImage
    - LogicalOperationWithValue
    - LogicalNot
    - InvertImage
    - BitShift
- Image Filtering
- - Grayscale Transforms
  - - RescaleIntensity
    - StackRescaleIntensity
    - MatchContrast
    - HistogramEqualization
    - Clahe2d
    - Clahe3d
    - AdaptiveHistogramEqualization
    - ApplyGrayscaleLut
    - BackgroundImage2d
    - RadialBackgroundImage2d
    - ShadingCorrection
    - Exponential
    - Logarithm
    - Square
    - SquareRoot
    - RingArtifactRemoval3d
    - BeamHardeningCorrection3d
  - Color Transforms
  - - ColorToLightness
    - GetColorChannel
    - ColorToGrayscale
    - GrayscaleToColor
    - ColorSpaceConversion
    - ColorAntialiasing2d
    - BayerToRgb2d
    - DecorrelationStretch2d
    - BlendAlphaChannelWithImage
    - BlendAlphaChannelWithValue
  - Smoothing And Denoising
  - - BoxFilter2d
    - BoxFilter3d
    - MedianFilter2d
    - MedianFilter3d
    - GaussianFilter2d
    - GaussianFilter3d
    - ExponentialFilter2d
    - RecursiveExponentialFilter2d
    - RecursiveExponentialFilter3d
    - NonLocalMeansFilter2d
    - NonLocalMeansFilter3d
    - CurvatureDrivenDiffusion
    - BilateralFilter2d
    - BilateralFilter3d
    - MajorityFilter2d
    - MajorityFilter3d
    - SigmaFilter2d
    - SigmaFilter3d
    - Despeckle2d
    - Despeckle3d
    - NagaoFilter2d
    - NagaoFilter3d
    - SnnFilter2d
    - SnnFilter3d
    - FlowInpainting
  - Sharpening
  - - Deblurring2d
    - Delineate2d
    - Delineate3d
    - UnsharpMasking2d
    - UnsharpMasking3d
    - Shade2d
    - RichardsonLucyDeconvolution
  - Texture Filters
  - - MeanFilter2d
    - MeanFilter3d
    - VarianceFilter2d
    - VarianceFilter3d
    - SkewnessFilter2d
    - SkewnessFilter3d
    - KurtosisFilter2d
    - KurtosisFilter3d
    - ContrastFilter2d
    - ContrastFilter3d
    - VariationFilter2d
    - VariationFilter3d
    - EnergyFilter2d
    - EnergyFilter3d
    - EntropyFilter2d
    - EntropyFilter3d
    - AutocorrelationFilter
    - LocalAutocorrelationFilter2d
    - ImageCurvature2d
    - ImageCurvature3d
    - StructureEnhancementFilter2d
    - StructureEnhancementFilter3d
    - ScaleSpaceLogFilter2d
    - ScaleSpaceLogFilter3d
  - Frequency Domain
  - - ComplexFft
    - ComplexFftInverse
    - ComplexCenteredFft
    - ComplexCenteredFftInverse
    - CartesianToPolar2d
    - PolarToCartesian2d
    - ConvolutionWithImage
    - ConvolutionWithImage2d
    - RadialFrequencyFilter2d
    - GaborFiltering2d
- Edge Detection
- - Gradient
  - - GradientOperator2d
    - GradientOperator3d
    - VectorToMagnitude2d
    - VectorToMagnitude3d
    - GradientVector2d
    - GradientVector3d
    - GradientMagnitude2d
    - GradientMagnitude3d
    - MorphologicalGradient2d
    - MorphologicalGradient3d
    - RadialGradientCentered2d
    - RadialGradientCentered3d
    - RadialGradientContour2d
    - RadialGradientContour3d
    - RadialGradientLabel2d
    - RadialGradientLabel3d
  - Laplacian
  - - DobFilter2d
    - DobFilter3d
    - MorphologicalLaplacian
    - RecursiveLaplacian2d
    - RecursiveLaplacian3d
  - Other Derivatives
  - - GaussianDerivative2d
    - GaussianDerivative3d
    - GaussianHessianMatrix2d
    - GaussianHessianMatrix3d
    - GaussianGradientTensor2d
    - GaussianGradientTensor3d
  - Edge Marking
  - - ImageLocalMaxima2d
    - ImageLocalMaxima3d
    - RidgeDetection
    - ZeroCrossings2d
    - DijkstraShortestPath2d
    - EigenvaluesToStructureness2d
    - EigenvaluesToStructureness3d
    - TensorVoting2d
    - CannyEdgeDetector2d
    - CannyEdgeDetector3d
- Image Segmentation
- - Binarization
  - - Thresholding
    - ThresholdingByCriterion
    - AutoThresholdingBright
    - AutoThresholdingDark
    - ColorThresholding
    - TopHat
    - FeatureAdaptiveThresholding
    - AdaptiveThresholding2d
    - AdaptiveThresholding3d
    - HysteresisThresholding
  - Labeling
  - - Labeling2d
    - Labeling3d
    - ReorderLabels
    - AssignLabel
    - AddObjectToLabel
    - GroupCloseLabelsl2d
  - Feature Selection
  - - KillBorder2d
    - KillBorder3d
    - RemoveSmallSpots
    - ObjectBoundaries
    - BinarySmoothing2d
    - BinarySmoothing3d
    - LabelInterfaces
  - Separating And Filling
  - - FillHoles2d
    - FillHoles3d
    - RemoveSmallHoles
    - FillImageBorder3d
    - ExpandLabelBoundaries
    - SeparateObjects
    - HExtremaWatershed
    - SeparateObjectsByBlock
    - HExtremaWatershedByBlock
    - ConvexHull2d
  - Region Growing
  - - MarkerBasedWatershed2d
    - MarkerBasedWatershed3d
    - MarkerBasedWatershedByBlock
    - MarkerBasedWatershedBasinsByBlock
    - ExpandLabelsOnBackground
    - FloodFillThreshold2d
    - FloodFillThreshold3d
    - Waterpixel
  - Computational Geometry
  - - PolylineResampler2d
    - PolylineResampler3d
    - PolylineExtrusion3d
    - SurfaceFitting3d
- Mathematical Morphology
- - Erosion And Dilation
  - - Erosion2d
    - Erosion3d
    - Dilation2d
    - Dilation3d
    - ErosionDisk2d
    - ErosionDisk3d
    - ErosionBall3d
    - DilationDisk2d
    - DilationDisk3d
    - DilationBall3d
    - ErosionLine2d
    - ErosionLine3d
    - DilationLine2d
    - DilationLine3d
    - ErosionColor2d
    - DilationColor2d
    - SelectiveErosion2d
    - SelectiveErosion3d
    - SelectiveDilation2d
    - SelectiveDilation3d
  - Opening And Closing
  - - Opening2d
    - Opening3d
    - Closing2d
    - Closing3d
    - OpeningDisk2d
    - OpeningDisk3d
    - OpeningBall3d
    - ClosingDisk2d
    - ClosingDisk3d
    - ClosingBall3d
    - OpeningLine2d
    - OpeningLine3d
    - ClosingLine2d
    - ClosingLine3d
    - OpeningLineMaximum
    - ClosingLineMinimum
    - OpeningColor2d
    - ClosingColor2d
    - OpeningByReconstruction2d
    - OpeningByReconstruction3d
    - ClosingByReconstruction2d
    - ClosingByReconstruction3d
    - OpeningDiskByReconstruction2d
    - OpeningBallByReconstruction3d
    - ClosingDiskByReconstruction2d
    - ClosingBallByReconstruction3d
    - SelectiveOpening2d
    - SelectiveOpening3d
    - SelectiveClosing2d
    - SelectiveClosing3d
  - Hit Or Miss And Skeleton
  - - Skeleton
    - Centerline3d
    - InfluenceZones
    - Centroid2d
    - EndPoints2d
    - EndPoints3d
    - Pruning2d
    - Pruning3d
    - IsolatedPoints2d
    - IsolatedPoints3d
    - TriplePoints2d
    - InteriorPoints2d
    - ApplyMorphologicalLut2d
    - ApplyMorphologicalLut3d
  - Geodesic Transformations
  - - ReconstructionFromMarkers2d
    - ReconstructionFromMarkers3d
    - GrayscaleReconstruction2d
    - GrayscaleReconstruction3d
    - GrayscaleFillHoles2d
    - GrayscaleFillHoles3d
    - HExtrema2d
    - HExtrema3d
    - RegionalExtrema2d
    - RegionalExtrema3d
    - UltimateErosion
  - Distance Maps
  - - DistanceMap2d
    - DistanceMap3d
    - EuclideanDistanceMap3d
    - EuclideanDistanceMap2d
    - GeodesicDistanceMap
    - ClosestBoundaryPoints2d
    - ClosestBoundaryPoints3d
    - TimeMap
    - LocalThicknessMap3d
    - GeodesicPropagation2d
    - GeodesicMaxima
    - GeodesicMinima
- Image Analysis
- - Image Measurements
  - - BinaryAnalysis
    - Area2d
    - Area3d
    - IntensityIntegral2d
    - IntensityIntegral3d
    - ObjectCount
    - DistanceMean2d
    - EulerNumber2d
    - EulerNumber3d
    - FractalDimension
    - CurvatureIntegrals3d
  - Image Statistics
  - - IntensityExtrema
    - IntensityStatistics
    - IntensityMaskedStatistics
    - IntensityHistogram
    - IntensityBinHistogram
    - AutoThresholdingValue
    - CompareImage
    - CompareValue
    - SimilarityMetricValue
    - SsimValue2d
    - SsimValue3d
    - RegionSimilarity
    - RadialIntensityProfile2d
    - RadialIntensityProfile3d
    - CylindricalIntensityProfile3d
    - RadialAutocorrelationProfile
    - Cooccurrence2d
    - MeasureGaussianNoise
    - LocalMaxima2d
    - LocalMaxima3d
    - PeakExtractor
    - LocalDensityMap2d
    - LocalDensityMap3d
    - SegmentationMetrics
  - Individual Measurements
  - - VolumeFractionByLabel
    - LabelCountByRegion
    - VolumeFractionByRegion
    - LabelAnalysis
    - LabelFiltering
    - LabelFilteringAnalysis
    - FilterAnalysis
    - MeasurementToImage
    - FilterByMeasurement
    - SieveLabeling
  - Moments And Orientations
  - - MomentsOfInertia2d
    - MomentsOfInertia3d
    - InertiaMoment2d
    - Eccentricity2d
    - OrientationMapFourier3d
    - OrientationMatchingFourier3d
  - Morphometry
  - - ObjectVolume
    - TotalImageVolume
    - ObjectBoundaryArea
    - TotalImageBoundaryArea
    - AverageObjectAreaPerSlice3d
    - AverageObjectCountPerSlice3d
    - ObjectImageRatio
    - ObjectSpecificSurface
    - ObjectSurfaceDensity
    - PorosityPercentage3d
    - FragmentationIndex
    - StructureModelIndex3d
    - AverageObjectThickness3d
    - AverageSpaceThickness3d
    - ObjectLinearDensity3d
    - DegreeOfAnisotropy
  - Propagation
  - - AxisPropagationBinary3d
    - AxisPropagationBinaryWithSeeds3d
    - AxisPropagationLabel3d
    - AxisPropagationLabelWithSeeds3d
    - AxisPropagationDistance3d
    - EstimateShortestPath3d
    - PercolationThreshold3d
    - AxisConnectivity3d
    - CentroidPathTortuosity3d
- Machine Learning
- - Classification
  - - AutoSegmentation3Phases
    - AutoIntensityClassification
    - SupervisedTextureClassification2d
    - SupervisedTextureClassification3d
    - TextureClassificationCreate
    - TextureClassificationTrain
    - TextureClassificationApply
  - Deep learning
  - - OnnxPredictionFiltering2d
    - OnnxPredictionFiltering3d
    - OnnxPredictionSegmentation2d
    - OnnxPredictionSegmentation3d
    - OnnxPredictionTwoOutputs2d
    - OnnxPredictionTwoOutputs3d
- Business Application
- - Dental
  - - DentalWallSegmentation3d
    - DentalMeshExtraction3d
    - DentalUnfolding3d
- IO
- - Image Data
  - - ReadVipImage
    - WriteVipImage
  - Algebraic Data
  - - ReadArrayXd
    - ReadArrayXi64
    - WriteArrayXd
    - WriteArrayXi64
  - Model
  - - ReadOnnxModel
- CUDA
- - Geometry And Matching
  - - CudaCrossCorrelation2d
    - CudaTemplateMatching3d
  - Image Filtering
  - - CudaBoxFilter2d
    - CudaMedianFilter2d
    - CudaGaussianFilter3d
    - CudaAdaptiveManifoldNlmFilter
  - Mathematical Morphology
  - - CudaErosion2d
    - CudaDilation2d
    - CudaOpening2d
    - CudaClosing2d
- Utilities
- Initialization
- Processing
- Syntax Check
- Visualization
- Data Object
- Image Data
- Kernels
- - MorphologicalKernel2d
  - MorphologicalKernel3d
  - MorphologicalLut2d
  - MorphologicalLut3d
- Model
- - TextureClassificationModel
  - OnnxModel
- Global Measurements
- - Image Measurements
  - - Area2dMsr
    - Area3dMsr
    - IntensityIntegral2dMsr
    - IntensityIntegral3dMsr
    - ObjectCountMsr
    - DistanceMeanMsr
    - Euler2dMsr
    - Euler3dMsr
    - FractalMsr
    - CurvatureIntegralsMsr
  - Image Statistics
  - - IntensityExtremaMsr
    - StatisticsMsr
    - IntensityHistogramMsr
    - IntensityBinHistogramMsr
    - CompareMsr
    - SimilarityMetricValueMsr
    - SsimValueMsr
    - RegionSimilarityMsr
    - SegmentationMetricsObjectMsr
    - SegmentationMetricsImageMsr
    - CylindricalIntensityProfileMsr
    - RadialIntensityProfileMsr
    - CorrelationMsr
    - CoocurrrenceMsr
    - GaussianNoiseMsr
    - LocalMaximaMsr
    - PeakExtractorMsr
  - Individual Measurements
  - - VolumeFractionByLabelMsr
    - LabelCountByRegionMsr
    - VolumeFractionByRegionMsr
  - Moments And Orientations
  - - MomentsOfInertia2dMsr
    - MomentsOfInertia3dMsr
    - MeanInertiaMomentMsr
    - Eccentricity2dMsr
    - LocalOrientation3dMsr
  - Morphometry
  - - ObjectVolumeMsr
    - ImageVolumeMsr
    - ObjectBoundaryAreaMsr
    - ImageBoundaryAreaMsr
    - AverageObjectAreaPerSliceMsr
    - AverageObjectCountPerSliceMsr
    - ObjectImageRatioMsr
    - ObjectSpecificSurfaceMsr
    - ObjectSurfaceDensityMsr
    - PorosityPercentageMsr
    - FragmentationMsr
    - StructureModelIndexMsr
    - AverageObjectThicknessMsr
    - AverageSpaceThicknessMsr
    - ObjectLinearDensityMsr
    - AnisotropyDegreeMsr
  - Propagation
  - - AxisPropagationBinary3dMsr
    - AxisPropagationLabel3dMsr
    - AxisPropagationDistance3dMsr
    - PercolationThreshold3dMsr
    - CentroidTortuosity3dMsr
  - Geometry And Matching
  - - CrossCorrelation2dMsr
  - Edge Detection
  - - CannyEdgeDetectorMsr
  - Image Segmentation
  - - AutoThresholdingMsr
    - AutoSegmentation3PhasesMsr
  - Mathematical Morphology
  - - ApplyMorphologicalLutMsr
- Analysis Measurements
- - AnalysisMsr
  - Measurement
  - Native Measurements
  - - Geometry
    - Feret
    - Intensity
    - Histogram
    - Inertia
    - Locate
    - Segment
    - Cooccurrence
  - CustomMeasurement
  - MeasurementAttributes
  - - Quantile
    - Histogram
    - Feret2d
    - Feret3d
    - NeighborCount
    - Cooccurrence
    - Breadth3d
  - MeasurementGroup
- Measurement Information
- - FieldInformation
  - CustomMeasurementInfo
- CUDA
- - CudaContext
- User Guide
- First Steps
- - Hello ImageDev
  - Initialize ImageDev
- Image Management
- - Create 2D Image
  - Create 3D Image
  - Data Transfer
- Standard Processing
- - Denoising
  - Thresholding
- Image Analysis
- - Global Analysis
  - Label Analysis
  - Measurement Browsing
  - Measurement Group
  - Custom Analysis
- Advanced Processing
- - Algorithm Tracking
- Typical Use Cases
- - Particle Analysis
  - Pore Analysis

# PeakExtractor

Extracts the peaks (that is, the local intensity maxima) of an image using a neighborhood analysis.
Access to parameter description
This command is experimental, his signature may be modified between now and his final version.
For an introduction: section Image Correlation.
This algorithm aims to extract the local maxima of a correlation image.
A voxel of the input image is considered as a local maximum if:

- Its intensity is greater than or equal to the user defined threshold.
- There is no maximum with a greater intensity within its local neighborhood, defined by the radius parameter.
- The total number of detected maxima does not exceed the value of the parameter numberOfPeaks.

See also

- LocalMaxima3d
- CudaTemplateMatching3d

##
Function Syntax

This function returns outputMeasurement.

    // Function prototype
    PeakExtractorMsr::Ptr
    peakExtractor( std::shared_ptr< iolink::ImageView > inputImage,
                   uint32_t numberOfPeaks,
                   double threshold,
                   const iolink::Vector3u32& radius,
                   PeakExtractor::Method method,
                   PeakExtractorMsr::Ptr outputMeasurement = nullptr );

This function returns outputMeasurement.

    // Function prototype.
    peak_extractor(input_image: idt.ImageType,
                   number_of_peaks: int = 0,
                   threshold: float = 0.5,
                   radius: Iterable[int] = [10, 10, 10],
                   method: PeakExtractor.Method = PeakExtractor.Method.FAST,
                   output_measurement: Union[Any, None] = None) -> PeakExtractorMsr

This function returns outputMeasurement.

    // Function prototype.
    public static PeakExtractorMsr
    PeakExtractor( IOLink.ImageView inputImage,
                   UInt32 numberOfPeaks = 0,
                   double threshold = 0.5,
                   uint[] radius = null,
                   PeakExtractor.Method method = ImageDev.PeakExtractor.Method.FAST,
                   PeakExtractorMsr outputMeasurement = null );

##
Class Syntax

    // Command constructor.
    PeakExtractor();

    /// Gets the inputImage parameter.
    /// The input image from which the peaks must be extracted.
    std::shared_ptr< iolink::ImageView > inputImage() const;
    /// Sets the inputImage parameter.
    /// The input image from which the peaks must be extracted.
    void setInputImage( std::shared_ptr< iolink::ImageView > inputImage );

    /// Gets the numberOfPeaks parameter.
    /// The maximum number of peaks to extract. If this value is set to 0, all peaks having an intensity greater than or equal to the threshold vaue are detected.
    uint32_t numberOfPeaks() const;
    /// Sets the numberOfPeaks parameter.
    /// The maximum number of peaks to extract. If this value is set to 0, all peaks having an intensity greater than or equal to the threshold vaue are detected.
    void setNumberOfPeaks( const uint32_t& numberOfPeaks );

    /// Gets the threshold parameter.
    /// The threshold value that determines the minimal intensity of a selected peak.
    double threshold() const;
    /// Sets the threshold parameter.
    /// The threshold value that determines the minimal intensity of a selected peak.
    void setThreshold( const double& threshold );

    /// Gets the radius parameter.
    /// The minimum distance between two extracted peaks in pixels, along the X, Y, and Z directions
    iolink::Vector3u32 radius() const;
    /// Sets the radius parameter.
    /// The minimum distance between two extracted peaks in pixels, along the X, Y, and Z directions
    void setRadius( const iolink::Vector3u32& radius );

    /// Gets the method parameter.
    /// The method for extracting the peaks.
    PeakExtractor::Method method() const;
    /// Sets the method parameter.
    /// The method for extracting the peaks.
    void setMethod( const PeakExtractor::Method& method );

    /// Gets the outputMeasurement parameter.
    /// The result object containing the maxima positions and their associated intensity.
    PeakExtractorMsr::Ptr outputMeasurement() const;

    // Method to launch the command.
    void execute();

    # Property of the inputImage parameter.
    PeakExtractor.input_image
    # Property of the numberOfPeaks parameter.
    PeakExtractor.number_of_peaks
    # Property of the threshold parameter.
    PeakExtractor.threshold
    # Property of the radius parameter.
    PeakExtractor.radius
    # Property of the method parameter.
    PeakExtractor.method
    # Property of the outputMeasurement parameter.
    PeakExtractor.output_measurement

    // Method to launch the command.
    execute()

    // Command constructor.
    PeakExtractor()

    // Property of the inputImage parameter.
    PeakExtractor.inputImage
    // Property of the numberOfPeaks parameter.
    PeakExtractor.numberOfPeaks
    // Property of the threshold parameter.
    PeakExtractor.threshold
    // Property of the radius parameter.
    PeakExtractor.radius
    // Property of the method parameter.
    PeakExtractor.method
    // Property of the outputMeasurement parameter.
    PeakExtractor.outputMeasurement

    // Method to launch the command.
    Execute()

## Parameters

Parameter Name | Description | Type | Supported Values | Default Value
--- | --- | --- | --- | ---
| inputImage | The input image from which the peaks must be extracted. | Image | Binary, Label or Grayscale | nullptr
| numberOfPeaks | The maximum number of peaks to extract. If this value is set to 0, all peaks having an intensity greater than or equal to the threshold vaue are detected. | UInt32 | Any value | 0
| threshold | The threshold value that determines the minimal intensity of a selected peak. | Float64 | Any value | 0.5
| method | The method for extracting the peaks.
FAST | Rough extraction of local maxima.
| Enumeration |  | FAST
| radius | The minimum distance between two extracted peaks in pixels, along the X, Y, and Z directions | Vector3u32 | Any value | {10, 10, 10}
| outputMeasurement | The result object containing the maxima positions and their associated intensity. | PeakExtractorMsr |  | nullptr

Parameter Name | Description | Type | Supported Values | Default Value
--- | --- | --- | --- | ---
| input_image | The input image from which the peaks must be extracted. | image | Binary, Label or Grayscale | None
| number_of_peaks | The maximum number of peaks to extract. If this value is set to 0, all peaks having an intensity greater than or equal to the threshold vaue are detected. | uint32 | Any value | 0
| threshold | The threshold value that determines the minimal intensity of a selected peak. | float64 | Any value | 0.5
| method | The method for extracting the peaks.
FAST | Rough extraction of local maxima.
| enumeration |  | FAST
| radius | The minimum distance between two extracted peaks in pixels, along the X, Y, and Z directions | vector3u32 | Any value | [10, 10, 10]
| output_measurement | The result object containing the maxima positions and their associated intensity. | PeakExtractorMsr |  | None

Parameter Name | Description | Type | Supported Values | Default Value
--- | --- | --- | --- | ---
| inputImage | The input image from which the peaks must be extracted. | Image | Binary, Label or Grayscale | null
| numberOfPeaks | The maximum number of peaks to extract. If this value is set to 0, all peaks having an intensity greater than or equal to the threshold vaue are detected. | UInt32 | Any value | 0
| threshold | The threshold value that determines the minimal intensity of a selected peak. | Float64 | Any value | 0.5
| method | The method for extracting the peaks.
FAST | Rough extraction of local maxima.
| Enumeration |  | FAST
| radius | The minimum distance between two extracted peaks in pixels, along the X, Y, and Z directions | Vector3u32 | Any value | {10, 10, 10}
| outputMeasurement | The result object containing the maxima positions and their associated intensity. | PeakExtractorMsr |  | null

## Object Examples

    auto fibers_score = readVipImage( std::string( IMAGEDEVDATA_IMAGES_FOLDER ) + "fibers_score.vip" );

    PeakExtractor peakExtractorAlgo;
    peakExtractorAlgo.setInputImage( fibers_score );
    peakExtractorAlgo.setNumberOfPeaks( 0 );
    peakExtractorAlgo.setThreshold( 4000 );
    peakExtractorAlgo.setRadius( {15, 15, 15} );
    peakExtractorAlgo.setMethod( PeakExtractor::Method::FAST );
    peakExtractorAlgo.execute();

    std::cout << "positionX: " << peakExtractorAlgo.outputMeasurement()->positionX( 0 ) ;

    fibers_score = imagedev.read_vip_image(imagedev_data.get_image_path("fibers_score.vip"))

    peak_extractor_algo = imagedev.PeakExtractor()
    peak_extractor_algo.input_image = fibers_score
    peak_extractor_algo.number_of_peaks = 0
    peak_extractor_algo.threshold = 4000
    peak_extractor_algo.radius = [15, 15, 15]
    peak_extractor_algo.method = imagedev.PeakExtractor.FAST
    peak_extractor_algo.execute()

    print("positionX: ", str(peak_extractor_algo.output_measurement.position_x(0)))

    ImageView fibers_score = Data.ReadVipImage( @"Data/images/fibers_score.vip" );

    PeakExtractor peakExtractorAlgo = new PeakExtractor
    {
        inputImage = fibers_score,
        numberOfPeaks = 0,
        threshold = 4000,
        radius = new uint[]{15, 15, 15},
        method = PeakExtractor.Method.FAST
    };
    peakExtractorAlgo.Execute();

    Console.WriteLine( "positionX: " + peakExtractorAlgo.outputMeasurement.positionX( 0 ) );

## Function Examples

    auto fibers_score = readVipImage( std::string( IMAGEDEVDATA_IMAGES_FOLDER ) + "fibers_score.vip" );

    auto result = peakExtractor( fibers_score, 0, 4000, {15, 15, 15}, PeakExtractor::Method::FAST );

    std::cout << "positionX: " << result->positionX( 0 ) ;

    fibers_score = imagedev.read_vip_image(imagedev_data.get_image_path("fibers_score.vip"))

    result = imagedev.peak_extractor(fibers_score, 0, 4000, [15, 15, 15], imagedev.PeakExtractor.FAST)

    print("positionX: ", str(result.position_x(0)))

    ImageView fibers_score = Data.ReadVipImage( @"Data/images/fibers_score.vip" );

    PeakExtractorMsr result = Processing.PeakExtractor( fibers_score, 0, 4000, new uint[]{15, 15, 15}, PeakExtractor.Method.FAST );

    Console.WriteLine(  "positionX: " + result.positionX( 0 )  );

© 2025 Thermo Fisher Scientific Inc. All rights reserved.