Image Segmenter

Functional Guide | Reference: SetSegmentationMethod, GetGrayscaleDoubleThresholdSegmenter, SetHighThreshold, SetLowThreshold

using Euresys.Open_eVision;

static partial class Snippet
{
  static void ImageSegmenter()
  {
    //////////////////////////////////////////////////////////////
    // This code snippet shows how to build blobs according to  //
    // a user-defined image segmenter.                          //
    //////////////////////////////////////////////////////////////
    // 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
    Euresys.Open_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);
  }

}
#include <Open_eVision.h>

void ImageSegmenter()
{
  //////////////////////////////////////////////////////////////
  // This code snippet shows how to build blobs according to  //
  // a user-defined image segmenter.                          //
  //////////////////////////////////////////////////////////////
  using namespace Euresys::Open_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);
}
def ImageSegmenter():
    ##############################################################
    ## This code snippet shows how to build blobs according to  ##
    ## a user-defined image segmenter.                          ##
    ##############################################################
    import open_evision as oev
    # Image constructor
    src_image = oev.EImageBW8()
    # Image encoder
    encoder = oev.EImageEncoder()
    # Coded image
    codedImage = oev.ECodedImage2()
    # ...
    # Set the segmentation method to GrayscaleDoubleThreshold
    encoder.SegmentationMethod = oev.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)