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

# BoxGridImage3d

Creates a new three-dimensional image containing a binary or labeled grid.
Access to parameter description
This algorithm generates a new binary or label image containing a rectangular pattern that can be presented as:

- A grid of planes in a binary image
- A series of contiguous blocks identified by different labels
- A series of blocks identified by a different label and separated by a background line

(a) | (b)

Figure 1. Generation of a 3D box grid image (a) in contiguous region mode and (b) in lines mode
See also

- OrientedLinesImage3d
- FeatureAdaptiveThresholding
- BoxGridImage2d

##
Function Syntax

This function returns outputImage.

    // Function prototype
    std::shared_ptr< iolink::ImageView >
    boxGridImage3d( BoxGridImage3d::OutputType outputType,
                    const iolink::Vector3u32& imageSize,
                    const iolink::Vector3u32& origin,
                    const iolink::Vector3u32& gridOffset,
                    std::shared_ptr< iolink::ImageView > outputImage = nullptr );

This function returns outputImage.

    // Function prototype.
    box_grid_image_3d(output_type: BoxGridImage3d.OutputType = BoxGridImage3d.OutputType.LINES,
                      image_size: Iterable[int] = [128, 128, 128],
                      origin: Iterable[int] = [0, 0, 0],
                      grid_offset: Iterable[int] = [10, 10, 10],
                      output_image: idt.ImageType = None) -> idt.ImageType

This function returns outputImage.

    // Function prototype.
    public static IOLink.ImageView
    BoxGridImage3d( BoxGridImage3d.OutputType outputType = ImageDev.BoxGridImage3d.OutputType.LINES,
                    uint[] imageSize = null,
                    uint[] origin = null,
                    uint[] gridOffset = null,
                    IOLink.ImageView outputImage = null );

##
Class Syntax

    // Command constructor.
    BoxGridImage3d();

    /// Gets the outputType parameter.
    /// OutputType defines the type of desired grid in the output image.
    BoxGridImage3d::OutputType outputType() const;
    /// Sets the outputType parameter.
    /// OutputType defines the type of desired grid in the output image.
    void setOutputType( const BoxGridImage3d::OutputType& outputType );

    /// Gets the imageSize parameter.
    /// The dimensions, in pixels, of the output image.
    iolink::Vector3u32 imageSize() const;
    /// Sets the imageSize parameter.
    /// The dimensions, in pixels, of the output image.
    void setImageSize( const iolink::Vector3u32& imageSize );

    /// Gets the origin parameter.
    /// The origin of the first full rectangular region to generate.
    iolink::Vector3u32 origin() const;
    /// Sets the origin parameter.
    /// The origin of the first full rectangular region to generate.
    void setOrigin( const iolink::Vector3u32& origin );

    /// Gets the gridOffset parameter.
    /// The X, Y, and Z side size of boxes to create in the output images. In CONTIGUOUS_REGIONS or SEPARATED_REGIONS mode, it represents the number of pixels between the top left corners of contiguous labels in each direction. In LINES mode, it represents the offset, in pixels, between consecutive lines in each direction.
    iolink::Vector3u32 gridOffset() const;
    /// Sets the gridOffset parameter.
    /// The X, Y, and Z side size of boxes to create in the output images. In CONTIGUOUS_REGIONS or SEPARATED_REGIONS mode, it represents the number of pixels between the top left corners of contiguous labels in each direction. In LINES mode, it represents the offset, in pixels, between consecutive lines in each direction.
    void setGridOffset( const iolink::Vector3u32& gridOffset );

    /// Gets the outputImage parameter.
    /// The output 3D image containing the grid. Type depends of the type of the grid.
    std::shared_ptr< iolink::ImageView > outputImage() const;
    /// Sets the outputImage parameter.
    /// The output 3D image containing the grid. Type depends of the type of the grid.
    void setOutputImage( std::shared_ptr< iolink::ImageView > outputImage );

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

    # Property of the outputType parameter.
    BoxGridImage3d.output_type
    # Property of the imageSize parameter.
    BoxGridImage3d.image_size
    # Property of the origin parameter.
    BoxGridImage3d.origin
    # Property of the gridOffset parameter.
    BoxGridImage3d.grid_offset
    # Property of the outputImage parameter.
    BoxGridImage3d.output_image

    // Method to launch the command.
    execute()

    // Command constructor.
    BoxGridImage3d()

    // Property of the outputType parameter.
    BoxGridImage3d.outputType
    // Property of the imageSize parameter.
    BoxGridImage3d.imageSize
    // Property of the origin parameter.
    BoxGridImage3d.origin
    // Property of the gridOffset parameter.
    BoxGridImage3d.gridOffset
    // Property of the outputImage parameter.
    BoxGridImage3d.outputImage

    // Method to launch the command.
    Execute()

## Parameters

Parameter Name | Description | Type | Supported Values | Default Value
--- | --- | --- | --- | ---
| outputType | OutputType defines the type of desired grid in the output image.
LINES | The output image contains a binary grid.
CONTIGUOUS_REGIONS | The output image contains a grid of connected labels.
SEPARATED_REGIONS | The output image contains a grid of separated labels.
| Enumeration |  | LINES
| imageSize | The dimensions, in pixels, of the output image. | Vector3u32 | != 0 | {128, 128, 128}
| origin | The origin of the first full rectangular region to generate. | Vector3u32 | Any value | {0, 0, 0}
| gridOffset | The X, Y, and Z side size of boxes to create in the output images. In CONTIGUOUS_REGIONS or SEPARATED_REGIONS mode, it represents the number of pixels between the top left corners of contiguous labels in each direction. In LINES mode, it represents the offset, in pixels, between consecutive lines in each direction. | Vector3u32 | != 0 | {10, 10, 10}
| outputImage | The output 3D image containing the grid. Type depends of the type of the grid. | Image |  | nullptr

Parameter Name | Description | Type | Supported Values | Default Value
--- | --- | --- | --- | ---
| output_type | OutputType defines the type of desired grid in the output image.
LINES | The output image contains a binary grid.
CONTIGUOUS_REGIONS | The output image contains a grid of connected labels.
SEPARATED_REGIONS | The output image contains a grid of separated labels.
| enumeration |  | LINES
| image_size | The dimensions, in pixels, of the output image. | vector3u32 | != 0 | [128, 128, 128]
| origin | The origin of the first full rectangular region to generate. | vector3u32 | Any value | [0, 0, 0]
| grid_offset | The X, Y, and Z side size of boxes to create in the output images. In CONTIGUOUS_REGIONS or SEPARATED_REGIONS mode, it represents the number of pixels between the top left corners of contiguous labels in each direction. In LINES mode, it represents the offset, in pixels, between consecutive lines in each direction. | vector3u32 | != 0 | [10, 10, 10]
| output_image | The output 3D image containing the grid. Type depends of the type of the grid. | image |  | None

Parameter Name | Description | Type | Supported Values | Default Value
--- | --- | --- | --- | ---
| outputType | OutputType defines the type of desired grid in the output image.
LINES | The output image contains a binary grid.
CONTIGUOUS_REGIONS | The output image contains a grid of connected labels.
SEPARATED_REGIONS | The output image contains a grid of separated labels.
| Enumeration |  | LINES
| imageSize | The dimensions, in pixels, of the output image. | Vector3u32 | != 0 | {128, 128, 128}
| origin | The origin of the first full rectangular region to generate. | Vector3u32 | Any value | {0, 0, 0}
| gridOffset | The X, Y, and Z side size of boxes to create in the output images. In CONTIGUOUS_REGIONS or SEPARATED_REGIONS mode, it represents the number of pixels between the top left corners of contiguous labels in each direction. In LINES mode, it represents the offset, in pixels, between consecutive lines in each direction. | Vector3u32 | != 0 | {10, 10, 10}
| outputImage | The output 3D image containing the grid. Type depends of the type of the grid. | Image |  | null

## Object Examples

    BoxGridImage3d boxGridImage3dAlgo;
    boxGridImage3dAlgo.setOutputType( BoxGridImage3d::OutputType::LINES );
    boxGridImage3dAlgo.setImageSize( {128, 128, 128} );
    boxGridImage3dAlgo.setOrigin( {0, 0, 0} );
    boxGridImage3dAlgo.setGridOffset( {10, 10, 10} );
    boxGridImage3dAlgo.execute();

    std::cout << "outputImage:" << boxGridImage3dAlgo.outputImage()->toString();

    box_grid_image_3d_algo = imagedev.BoxGridImage3d()
    box_grid_image_3d_algo.output_type = imagedev.BoxGridImage3d.LINES
    box_grid_image_3d_algo.image_size = [128, 128, 128]
    box_grid_image_3d_algo.origin = [0, 0, 0]
    box_grid_image_3d_algo.grid_offset = [10, 10, 10]
    box_grid_image_3d_algo.execute()

    print("output_image:", str(box_grid_image_3d_algo.output_image))

    BoxGridImage3d boxGridImage3dAlgo = new BoxGridImage3d
    {
        outputType = BoxGridImage3d.OutputType.LINES,
        imageSize = new uint[]{128, 128, 128},
        origin = new uint[]{0, 0, 0},
        gridOffset = new uint[]{10, 10, 10}
    };
    boxGridImage3dAlgo.Execute();

    Console.WriteLine( "outputImage:" + boxGridImage3dAlgo.outputImage.ToString() );

## Function Examples

    auto result = boxGridImage3d( BoxGridImage3d::OutputType::LINES, {128, 128, 128}, {0, 0, 0}, {10, 10, 10} );

    std::cout << "outputImage:" << result->toString();

    result = imagedev.box_grid_image_3d(imagedev.BoxGridImage3d.LINES, [128, 128, 128], [0, 0, 0], [10, 10, 10])

    print("output_image:", str(result))

    IOLink.ImageView result = Processing.BoxGridImage3d( BoxGridImage3d.OutputType.LINES, new uint[]{128, 128, 128}, new uint[]{0, 0, 0}, new uint[]{10, 10, 10} );

    Console.WriteLine( "outputImage:" + result.ToString() );

© 2025 Thermo Fisher Scientific Inc. All rights reserved.