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

# TextureClassificationCreate

Creates a new object model for performing a texture classification.
Access to parameter description
As an introduction:

- section Image Segmentation
- section Supervised Texture Classification

TextureClassificationCreate intializes a texture classification model that contains:

- A computation mode: 2D or 3D
- A list of texture groups
- A number of classes to discriminate
- A set of radii of analysis

After being created, a model must be trained with the TextureClassificationTrain algorithm before being used with the TextureClassificationApply algorithm.
See also

- TextureClassificationTrain
- TextureClassificationApply
- SupervisedTextureClassification2d
- SupervisedTextureClassification3d

##
Function Syntax

This function returns outputModel.

    // Function prototype
    TextureClassificationModel::Ptr
    textureClassificationCreate( TextureClassificationCreate::ComputeMode computeMode,
                                 uint32_t numberOfClasses,
                                 int32_t featureGroup,
                                 const iolink::Vector2u32& radiusRange,
                                 uint32_t radiusStep,
                                 uint32_t coocRadius,
                                 TextureClassificationCreate::CoocTextonShape coocTextonShape,
                                 uint32_t coocTextonSize,
                                 TextureClassificationModel::Ptr outputModel = nullptr );

This function returns outputModel.

    // Function prototype.
    texture_classification_create(compute_mode: TextureClassificationCreate.ComputeMode = TextureClassificationCreate.ComputeMode.MODE_2D,
                                  number_of_classes: int = 2,
                                  feature_group: Union[int, str, TextureClassificationCreate.FeatureGroup] = 31,
                                  radius_range: Iterable[int] = [2, 14],
                                  radius_step: int = 4,
                                  cooc_radius: int = 10,
                                  cooc_texton_shape: TextureClassificationCreate.CoocTextonShape = TextureClassificationCreate.CoocTextonShape.SPHERE,
                                  cooc_texton_size: int = 4,
                                  output_model: Union[Any, None] = None) -> TextureClassificationModel

This function returns outputModel.

    // Function prototype.
    public static TextureClassificationModel
    TextureClassificationCreate( TextureClassificationCreate.ComputeMode computeMode = ImageDev.TextureClassificationCreate.ComputeMode.MODE_2D,
                                 UInt32 numberOfClasses = 2,
                                 Int32 featureGroup = 31,
                                 uint[] radiusRange = null,
                                 UInt32 radiusStep = 4,
                                 UInt32 coocRadius = 10,
                                 TextureClassificationCreate.CoocTextonShape coocTextonShape = ImageDev.TextureClassificationCreate.CoocTextonShape.SPHERE,
                                 UInt32 coocTextonSize = 4,
                                 TextureClassificationModel outputModel = null );

##
Class Syntax

    // Command constructor.
    TextureClassificationCreate();

    /// Gets the computeMode parameter.
    /// The computation mode: 2D or 3D.
    TextureClassificationCreate::ComputeMode computeMode() const;
    /// Sets the computeMode parameter.
    /// The computation mode: 2D or 3D.
    void setComputeMode( const TextureClassificationCreate::ComputeMode& computeMode );

    /// Gets the numberOfClasses parameter.
    /// The number of classes to discriminate.
    uint32_t numberOfClasses() const;
    /// Sets the numberOfClasses parameter.
    /// The number of classes to discriminate.
    void setNumberOfClasses( const uint32_t& numberOfClasses );

    /// Gets the featureGroup parameter.
    /// The groups of textural features to compute. This list defines all the textural attributes proposed for performing the classification.
    int32_t featureGroup() const;
    /// Sets the featureGroup parameter.
    /// The groups of textural features to compute. This list defines all the textural attributes proposed for performing the classification.
    void setFeatureGroup( const int32_t& featureGroup );

    /// Gets the radiusRange parameter.
    /// The minimum and maximum radius, in pixels, of the circular neighborhoods used for computing textural features.
    iolink::Vector2u32 radiusRange() const;
    /// Sets the radiusRange parameter.
    /// The minimum and maximum radius, in pixels, of the circular neighborhoods used for computing textural features.
    void setRadiusRange( const iolink::Vector2u32& radiusRange );

    /// Gets the radiusStep parameter.
    /// The step, in pixels, used to define the set of radii between minimum and maximum. The maximum radius is systematically added to the radius list.
    uint32_t radiusStep() const;
    /// Sets the radiusStep parameter.
    /// The step, in pixels, used to define the set of radii between minimum and maximum. The maximum radius is systematically added to the radius list.
    void setRadiusStep( const uint32_t& radiusStep );

    /// Gets the coocRadius parameter.
    /// The radius, in pixels, of the circular neighborhood used by the co-occurrence features. This parameter is ignored if none of the co-occurrence feature groups is selected.
    uint32_t coocRadius() const;
    /// Sets the coocRadius parameter.
    /// The radius, in pixels, of the circular neighborhood used by the co-occurrence features. This parameter is ignored if none of the co-occurrence feature groups is selected.
    void setCoocRadius( const uint32_t& coocRadius );

    /// Gets the coocTextonShape parameter.
    /// The shape of the co-occurrence texton (the pattern defined by the set of co-occurrence vectors). This parameter is ignored if none of the co-occurrence feature groups is selected.
    TextureClassificationCreate::CoocTextonShape coocTextonShape() const;
    /// Sets the coocTextonShape parameter.
    /// The shape of the co-occurrence texton (the pattern defined by the set of co-occurrence vectors). This parameter is ignored if none of the co-occurrence feature groups is selected.
    void setCoocTextonShape( const TextureClassificationCreate::CoocTextonShape& coocTextonShape );

    /// Gets the coocTextonSize parameter.
    /// The size, in pixels, of the texton shape for co-occurrence features. This parameter is ignored if none of the co-occurrence feature groups is selected.
    uint32_t coocTextonSize() const;
    /// Sets the coocTextonSize parameter.
    /// The size, in pixels, of the texton shape for co-occurrence features. This parameter is ignored if none of the co-occurrence feature groups is selected.
    void setCoocTextonSize( const uint32_t& coocTextonSize );

    /// Gets the outputModel parameter.
    /// The output texture classification model, newly created.
    TextureClassificationModel::Ptr outputModel() const;

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

    # Property of the computeMode parameter.
    TextureClassificationCreate.compute_mode
    # Property of the numberOfClasses parameter.
    TextureClassificationCreate.number_of_classes
    # Property of the featureGroup parameter.
    TextureClassificationCreate.feature_group
    # Property of the radiusRange parameter.
    TextureClassificationCreate.radius_range
    # Property of the radiusStep parameter.
    TextureClassificationCreate.radius_step
    # Property of the coocRadius parameter.
    TextureClassificationCreate.cooc_radius
    # Property of the coocTextonShape parameter.
    TextureClassificationCreate.cooc_texton_shape
    # Property of the coocTextonSize parameter.
    TextureClassificationCreate.cooc_texton_size
    # Property of the outputModel parameter.
    TextureClassificationCreate.output_model

    // Method to launch the command.
    execute()

    // Command constructor.
    TextureClassificationCreate()

    // Property of the computeMode parameter.
    TextureClassificationCreate.computeMode
    // Property of the numberOfClasses parameter.
    TextureClassificationCreate.numberOfClasses
    // Property of the featureGroup parameter.
    TextureClassificationCreate.featureGroup
    // Property of the radiusRange parameter.
    TextureClassificationCreate.radiusRange
    // Property of the radiusStep parameter.
    TextureClassificationCreate.radiusStep
    // Property of the coocRadius parameter.
    TextureClassificationCreate.coocRadius
    // Property of the coocTextonShape parameter.
    TextureClassificationCreate.coocTextonShape
    // Property of the coocTextonSize parameter.
    TextureClassificationCreate.coocTextonSize
    // Property of the outputModel parameter.
    TextureClassificationCreate.outputModel

    // Method to launch the command.
    Execute()

## Parameters

Parameter Name | Description | Type | Supported Values | Default Value
--- | --- | --- | --- | ---
| computeMode | The computation mode: 2D or 3D.
MODE_2D | Computation as 2D data.
MODE_3D | Computation as 3D data.
| Enumeration |  | MODE_2D
| numberOfClasses | The number of classes to discriminate. | UInt32 | >=2 | 2
| featureGroup | The groups of textural features to compute. This list defines all the textural attributes proposed for performing the classification.
DIRECTIONAL_COOCCURRENCE | Features based on co-occurrence matrices. One feature is extracted from each co-occurrence vector. Associated value = 1.
ROTATION_INVARIANT_COOCCURRENCE | Features based on co-occurrence matrices. Three statistical features are extracted from all vectors. Associated value = 2.
FIRST_ORDER_STATISTICS | Features based on first order statistics that are not computed using a histogram. Associated value = 4.
HISTOGRAM_STATISTICS | Features based on histogram statistics, including histogram quantiles. Associated value = 8.
INTENSITY | Feature based on the intensity value of the input image. Associated value = 16.
| MultipleChoice |  | DIRECTIONAL_COOCCURRENCE | ROTATION_INVARIANT_COOCCURRENCE | FIRST_ORDER_STATISTICS | HISTOGRAM_STATISTICS | INTENSITY
| radiusRange | The minimum and maximum radius, in pixels, of the circular neighborhoods used for computing textural features. | Vector2u32 | >=1 | {2, 14}
| radiusStep | The step, in pixels, used to define the set of radii between minimum and maximum. The maximum radius is systematically added to the radius list. | UInt32 | >=1 | 4
| coocRadius | The radius, in pixels, of the circular neighborhood used by the co-occurrence features. This parameter is ignored if none of the co-occurrence feature groups is selected. | UInt32 | >=1 | 10
| coocTextonShape | The shape of the co-occurrence texton (the pattern defined by the set of co-occurrence vectors). This parameter is ignored if none of the co-occurrence feature groups is selected. The texton shape represents the distribution of points around the target point for computing the co-occurrence matrices. Associated to the texton size, it defines the set of vectors that are used for computing co-occurrence features. For instance, in 2D, a cube shape of size 3 defines the co-occurrence vectors (-3, -3), (0, -3), (3, -3), (-3, 0), (3, 0), (-3, 3), (0, 3) and (3, 3).
CUBE | The set of all points associated to corners and edge centers of a square with a half side size defined by the coocTextonSize parameter.
SPHERE | The set of all points located at the same euclidean distance defined by the coocTextonSize parameter from the center. This mode is recommended when a repetitive texture is mono-scale.
BALL | The set of all points located at a distance less or equal to the coocTextonSize parameter from the center. This mode can be useful to classify a multi-scale repetitive texture, but may be very time consuming.
| Enumeration |  | SPHERE
| coocTextonSize | The size, in pixels, of the texton shape for co-occurrence features. This parameter is ignored if none of the co-occurrence feature groups is selected. This size is constrained by the radius parameter. The constraint depends on the texton shape. For instance, with a square texton, the texton size cannot exceed the rounded value of $radius \times \sqrt{2}$. | UInt32 | >=1 | 4
| outputModel | The output texture classification model, newly created. | TextureClassificationModel |  | nullptr

Parameter Name | Description | Type | Supported Values | Default Value
--- | --- | --- | --- | ---
| compute_mode | The computation mode: 2D or 3D.
MODE_2D | Computation as 2D data.
MODE_3D | Computation as 3D data.
| enumeration |  | MODE_2D
| number_of_classes | The number of classes to discriminate. | uint32 | >=2 | 2
| feature_group | The groups of textural features to compute. This list defines all the textural attributes proposed for performing the classification.
DIRECTIONAL_COOCCURRENCE | Features based on co-occurrence matrices. One feature is extracted from each co-occurrence vector. Associated value = 1.
ROTATION_INVARIANT_COOCCURRENCE | Features based on co-occurrence matrices. Three statistical features are extracted from all vectors. Associated value = 2.
FIRST_ORDER_STATISTICS | Features based on first order statistics that are not computed using a histogram. Associated value = 4.
HISTOGRAM_STATISTICS | Features based on histogram statistics, including histogram quantiles. Associated value = 8.
INTENSITY | Feature based on the intensity value of the input image. Associated value = 16.
| multiple_choice |  | DIRECTIONAL_COOCCURRENCE | ROTATION_INVARIANT_COOCCURRENCE | FIRST_ORDER_STATISTICS | HISTOGRAM_STATISTICS | INTENSITY
| radius_range | The minimum and maximum radius, in pixels, of the circular neighborhoods used for computing textural features. | vector2u32 | >=1 | [2, 14]
| radius_step | The step, in pixels, used to define the set of radii between minimum and maximum. The maximum radius is systematically added to the radius list. | uint32 | >=1 | 4
| cooc_radius | The radius, in pixels, of the circular neighborhood used by the co-occurrence features. This parameter is ignored if none of the co-occurrence feature groups is selected. | uint32 | >=1 | 10
| cooc_texton_shape | The shape of the co-occurrence texton (the pattern defined by the set of co-occurrence vectors). This parameter is ignored if none of the co-occurrence feature groups is selected. The texton shape represents the distribution of points around the target point for computing the co-occurrence matrices. Associated to the texton size, it defines the set of vectors that are used for computing co-occurrence features. For instance, in 2D, a cube shape of size 3 defines the co-occurrence vectors (-3, -3), (0, -3), (3, -3), (-3, 0), (3, 0), (-3, 3), (0, 3) and (3, 3).
CUBE | The set of all points associated to corners and edge centers of a square with a half side size defined by the coocTextonSize parameter.
SPHERE | The set of all points located at the same euclidean distance defined by the coocTextonSize parameter from the center. This mode is recommended when a repetitive texture is mono-scale.
BALL | The set of all points located at a distance less or equal to the coocTextonSize parameter from the center. This mode can be useful to classify a multi-scale repetitive texture, but may be very time consuming.
| enumeration |  | SPHERE
| cooc_texton_size | The size, in pixels, of the texton shape for co-occurrence features. This parameter is ignored if none of the co-occurrence feature groups is selected. This size is constrained by the radius parameter. The constraint depends on the texton shape. For instance, with a square texton, the texton size cannot exceed the rounded value of $radius \times \sqrt{2}$. | uint32 | >=1 | 4
| output_model | The output texture classification model, newly created. | TextureClassificationModel |  | None

Parameter Name | Description | Type | Supported Values | Default Value
--- | --- | --- | --- | ---
| computeMode | The computation mode: 2D or 3D.
MODE_2D | Computation as 2D data.
MODE_3D | Computation as 3D data.
| Enumeration |  | MODE_2D
| numberOfClasses | The number of classes to discriminate. | UInt32 | >=2 | 2
| featureGroup | The groups of textural features to compute. This list defines all the textural attributes proposed for performing the classification.
DIRECTIONAL_COOCCURRENCE | Features based on co-occurrence matrices. One feature is extracted from each co-occurrence vector. Associated value = 1.
ROTATION_INVARIANT_COOCCURRENCE | Features based on co-occurrence matrices. Three statistical features are extracted from all vectors. Associated value = 2.
FIRST_ORDER_STATISTICS | Features based on first order statistics that are not computed using a histogram. Associated value = 4.
HISTOGRAM_STATISTICS | Features based on histogram statistics, including histogram quantiles. Associated value = 8.
INTENSITY | Feature based on the intensity value of the input image. Associated value = 16.
| MultipleChoice |  | DIRECTIONAL_COOCCURRENCE | ROTATION_INVARIANT_COOCCURRENCE | FIRST_ORDER_STATISTICS | HISTOGRAM_STATISTICS | INTENSITY
| radiusRange | The minimum and maximum radius, in pixels, of the circular neighborhoods used for computing textural features. | Vector2u32 | >=1 | {2, 14}
| radiusStep | The step, in pixels, used to define the set of radii between minimum and maximum. The maximum radius is systematically added to the radius list. | UInt32 | >=1 | 4
| coocRadius | The radius, in pixels, of the circular neighborhood used by the co-occurrence features. This parameter is ignored if none of the co-occurrence feature groups is selected. | UInt32 | >=1 | 10
| coocTextonShape | The shape of the co-occurrence texton (the pattern defined by the set of co-occurrence vectors). This parameter is ignored if none of the co-occurrence feature groups is selected. The texton shape represents the distribution of points around the target point for computing the co-occurrence matrices. Associated to the texton size, it defines the set of vectors that are used for computing co-occurrence features. For instance, in 2D, a cube shape of size 3 defines the co-occurrence vectors (-3, -3), (0, -3), (3, -3), (-3, 0), (3, 0), (-3, 3), (0, 3) and (3, 3).
CUBE | The set of all points associated to corners and edge centers of a square with a half side size defined by the coocTextonSize parameter.
SPHERE | The set of all points located at the same euclidean distance defined by the coocTextonSize parameter from the center. This mode is recommended when a repetitive texture is mono-scale.
BALL | The set of all points located at a distance less or equal to the coocTextonSize parameter from the center. This mode can be useful to classify a multi-scale repetitive texture, but may be very time consuming.
| Enumeration |  | SPHERE
| coocTextonSize | The size, in pixels, of the texton shape for co-occurrence features. This parameter is ignored if none of the co-occurrence feature groups is selected. This size is constrained by the radius parameter. The constraint depends on the texton shape. For instance, with a square texton, the texton size cannot exceed the rounded value of $radius \times \sqrt{2}$. | UInt32 | >=1 | 4
| outputModel | The output texture classification model, newly created. | TextureClassificationModel |  | null

## Object Examples

    TextureClassificationCreate textureClassificationCreateAlgo;
    textureClassificationCreateAlgo.setComputeMode( TextureClassificationCreate::ComputeMode::MODE_2D );
    textureClassificationCreateAlgo.setNumberOfClasses( 2 );
    textureClassificationCreateAlgo.setFeatureGroup( 4 );
    textureClassificationCreateAlgo.setRadiusRange( {15, 15} );
    textureClassificationCreateAlgo.setRadiusStep( 1 );
    textureClassificationCreateAlgo.setCoocRadius( 15 );
    textureClassificationCreateAlgo.setCoocTextonShape( TextureClassificationCreate::CoocTextonShape::SPHERE );
    textureClassificationCreateAlgo.setCoocTextonSize( 5 );
    textureClassificationCreateAlgo.execute();

    std::cout << "computeMode: " << textureClassificationCreateAlgo.outputModel()->computeMode( ) ;

    texture_classification_create_algo = imagedev.TextureClassificationCreate()
    texture_classification_create_algo.compute_mode = imagedev.TextureClassificationCreate.MODE_2D
    texture_classification_create_algo.number_of_classes = 2
    texture_classification_create_algo.feature_group = 4
    texture_classification_create_algo.radius_range = [15, 15]
    texture_classification_create_algo.radius_step = 1
    texture_classification_create_algo.cooc_radius = 15
    texture_classification_create_algo.cooc_texton_shape = imagedev.TextureClassificationCreate.SPHERE
    texture_classification_create_algo.cooc_texton_size = 5
    texture_classification_create_algo.execute()

    print("computeMode: ", str(texture_classification_create_algo.output_model.compute_mode()))

    TextureClassificationCreate textureClassificationCreateAlgo = new TextureClassificationCreate
    {
        computeMode = TextureClassificationCreate.ComputeMode.MODE_2D,
        numberOfClasses = 2,
        featureGroup = 4,
        radiusRange = new uint[]{15, 15},
        radiusStep = 1,
        coocRadius = 15,
        coocTextonShape = TextureClassificationCreate.CoocTextonShape.SPHERE,
        coocTextonSize = 5
    };
    textureClassificationCreateAlgo.Execute();

    Console.WriteLine( "computeMode: " + textureClassificationCreateAlgo.outputModel.computeMode( ) );

## Function Examples

    auto result = textureClassificationCreate( TextureClassificationCreate::ComputeMode::MODE_2D, 2, 4, {15, 15}, 1, 15, TextureClassificationCreate::CoocTextonShape::SPHERE, 5 );

    std::cout << "computeMode: " << result->computeMode( ) ;

    result = imagedev.texture_classification_create(imagedev.TextureClassificationCreate.MODE_2D, 2, 4, [15, 15], 1, 15, imagedev.TextureClassificationCreate.SPHERE, 5)

    print("computeMode: ", str(result.compute_mode()))

    TextureClassificationModel result = Processing.TextureClassificationCreate( TextureClassificationCreate.ComputeMode.MODE_2D, 2, 4, new uint[]{15, 15}, 1, 15, TextureClassificationCreate.CoocTextonShape.SPHERE, 5 );

    Console.WriteLine(  "computeMode: " + result.computeMode( )  );

© 2025 Thermo Fisher Scientific Inc. All rights reserved.