CogPMAlignPattern Elasticity Property Cognex VisionPro 9.5
The elasticity value is the amount of feature variance, in pixels, that PMAlign allows. Setting a nonzero elasticity value permits PMAlign to find pattern instances with nonlinear geometric variation to be found.

Namespace: Cognex.VisionPro.PMAlign
Assembly: Cognex.VisionPro.PMAlign (in Cognex.VisionPro.PMAlign.dll) Version: 69.0.0.0
Syntax

public double Elasticity { get; set; }

Property Value

Type: Double
Events

Event TypeReason
CogPMAlignPattern Changed

Fires when the value of this property changes.

The following state flag may be affected:

Exceptions

ExceptionCondition
ArgumentException

Value is less than zero.

Remarks

The elasticity value is the amount of feature variance, in pixels, that PMAlign allows. By default, feature-to-feature variance in the location of features within a pattern reduce both score and accuracy. If you specify a nonzero value for elasticity, PMAlign allows individual features to vary in position by the value you specify.

For more information, see the theory discussion of elasticity.

Default Value: 0.0

Examples

Imports Cognex.VisionPro
Imports Cognex.VisionPro.PMAlign

Private myPattern As CogPMAlignPattern
Private myParams As CogPMAlignRunParams
Private myResults As CogPMAlignResults

Private Sub doTrain()

  myPattern = New CogPMAlignPattern
  myParams = New CogPMAlignRunParams
  myResults = New CogPMAlignResults

  myPattern.TrainAlgorithm = CogPMAlignTrainAlgorithmConstants.PatMaxAndPatQuick
  myPattern.TrainMode = CogPMAlignTrainModeConstants.Image

  myPattern.Elasticity = 2.1
  myPattern.TrainImage = anImage
  myPattern.TrainRegion = trainRect
  myPattern.TrainRegionMode = CogRegionModeConstants.PixelAlignedBoundingBox
  myPattern.Origin.TranslationX = trainRect.CenterX
  myPattern.Origin.TranslationY = trainRect.CenterY

  myPattern.Train()
end sub
using Cognex.VisionPro;
using Cognex.VisionPro.PMAlign;

private CogPMAlignPattern myPattern;
private CogPMAlignRunParams myParams;
private CogPMAlignResults myResults;

private void doTrain()
{
  myPattern = new CogPMAlignPattern();
  myParams = new CogPMAlignRunParams();
  myResults =new CogPMAlignResults();

  myPattern.TrainAlgorithm = CogPMAlignTrainAlgorithmConstants.PatMaxAndPatQuick;
  myPattern.TrainMode = CogPMAlignTrainModeConstants.Image;

  myPattern.Elasticity = 2.1;

  myPattern.TrainImage = anImage;
  myPattern.TrainRegion = trainRect;
  myPattern.TrainRegionMode = CogRegionModeConstants.PixelAlignedBoundingBox;
  myPattern.Origin.TranslationX = trainRect.CenterX;
  myPattern.Origin.TranslationY = trainRect.CenterY;

  myPattern.Train();
}
See Also