CogPMAlignPattern GetTrainedPatternShapeModels Method Cognex VisionPro 9.22
Gets the actual shape models used to train the current pattern. The user provided shape models are clipped using the pixel aligned bounding box of TrainRegion when TrainRegion is not nothing.

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

public ICogShapeModelCollection GetTrainedPatternShapeModels()

Return Value

Type: ICogShapeModelCollection

The collection of shape models.

Exceptions

Remarks

Gets the actual shape models used to train the current pattern. Shape models are clipped using the pixel-aligned bounding box of TrainRegion when TrainRegion is not Nothing.

Examples

Imports Cognex.VisionPro
Imports Cognex.VisionPro.PMAlign

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

Private Sub doTrain()
  Dim affRect As New CogRectangleAffine
  Dim newTransform As New CogTransform2DLinear
  Dim shapeModel As ICogShapeModel
  Dim i As Integer

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

  affRect.SetFromRectangle(trainRect, newTransform)
  shapeModel = affRect.MakeShapeModel(1, CogShapeModelPolarityConstants.NegativeOne, True)

  myPattern.TrainShapeModels.Add(shapeModel)

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

  myPattern.Train()
  CogDisplay1.Image = myPattern.GetTrainedPatternImage
  For i = 0 To myPattern.GetTrainedPatternShapeModels.Count - 1
      CogDisplay1.StaticGraphics.Add(CType(myPattern.GetTrainedPatternShapeModels.Item(i).Shape, ICogGraphic), "")
  Next
end sub
using Cognex.VisionPro;
using Cognex.VisionPro.PMAlign;

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

private void doTrain()
{
  CogRectangleAffine affRect = new CogRectangleAffine();
  CogTransform2DLinear newTransform = new CogTransform2DLinear();
  ICogShapeModel shapeModel; 
  int i;

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

  affRect.SetFromRectangle(trainRect, newTransform);
  shapeModel = affRect.MakeShapeModel(1, CogShapeModelPolarityConstants.NegativeOne, true);

  myPattern.TrainShapeModels.Add(shapeModel);

  myPattern.TrainImage = anImage;
  myPattern.TrainRegion = null;
  myPattern.TrainRegionMode = CogRegionModeConstants.PixelAlignedBoundingBox;
  myPattern.Origin.TranslationX = trainRect.CenterX;
  myPattern.Origin.TranslationY = trainRect.CenterY;
  myPattern.Train();
  CogDisplay1.Image = myPattern.GetTrainedPatternImage();
  for( i=0; i < myPattern.GetTrainedPatternShapeModels().Count; i++)
    {
      CogDisplay1.StaticGraphics.Add((ICogGraphic) myPattern.GetTrainedPatternShapeModels().get_Item(i).Shape, "");
    }
}
See Also