Image Segmenter

This code snippet shows how to build blobs according to a user-defined image segmenter.

C++

#include <eVision/EasyObject/EasyObject2/EImageEncoder.h>
using namespace eVision;
// Image constructor
EImageBW8 srcImage;
// Image encoder
EImageEncoder encoder;
// Coded image
ECodedImage2 codedImage;
// ...
// Set the segmentation method to GrayscaleDoubleThreshold
encoder.SetSegmentationMethod(ESegmentationMethod_GrayscaleDoubleThreshold);
// Retrieve the segmenter object
Segmenters::EGrayscaleDoubleThresholdSegmenter& segmenter = encoder.GetGrayscaleDoubleThresholdSegmenter();
// Set the high and low threshold values
segmenter.SetHighThreshold(150);
segmenter.SetLowThreshold(50);
// Specify the layers to be encoded (neutral layer only)
segmenter.SetBlackLayerEncoded(false);
segmenter.SetNeutralLayerEncoded(true);
segmenter.SetWhiteLayerEncoded(false);
// Encode the image
encoder.Encode(srcImage, codedImage);

C#

using eVision;
// Image constructor
EImageBW8 srcImage = new EImageBW8();
// Image encoder
EImageEncoder encoder = new EImageEncoder();
// Coded image
ECodedImage2 codedImage = new ECodedImage2();
// ...
// Set the segmentation method to GrayscaleDoubleThreshold
encoder.SegmentationMethod = ESegmentationMethod.GrayscaleDoubleThreshold;
// Retrieve the segmenter object
eVision.Segmenters.EGrayscaleDoubleThresholdSegmenter segmenter = encoder.GrayscaleDoubleThresholdSegmenter;
// Set the high and low threshold values
segmenter.HighThreshold = 150;
segmenter.LowThreshold = 50;
// Specify the layers to be encoded (neutral layer only)
segmenter.BlackLayerEncoded = false;
segmenter.NeutralLayerEncoded = true;
segmenter.WhiteLayerEncoded = false;
// Encode the image
encoder.Encode(srcImage, codedImage);

Python

import eVision
# Image constructor
src_image = eVision.EImageBW8()
# Image encoder
encoder = eVision.EImageEncoder()
# Coded image
codedImage = eVision.ECodedImage2()
# ...
# Set the segmentation method to GrayscaleDoubleThreshold
encoder.SegmentationMethod = eVision.ESegmentationMethod.GrayscaleDoubleThreshold
# Retrieve the segmenter object
segmenter = encoder.GrayscaleDoubleThresholdSegmenter
# Set the high and low threshold values
segmenter.HighThreshold = 150
segmenter.LowThreshold = 50
# Specify the layers to be encoded (neutral layer only)
segmenter.BlackLayerEncoded = False
segmenter.NeutralLayerEncoded = True
segmenter.WhiteLayerEncoded = False
# Encode the image
encoder.Encode(src_image, codedImage)