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.PMAlignAssembly: Cognex.VisionPro.PMAlign (in Cognex.VisionPro.PMAlign.dll) Version: 75.1.0.0
Syntax
Return Value
Type: ICogShapeModelCollectionThe collection of shape models.
Exceptions
| Exception | Condition |
|---|---|
| CogOperatorNotTrainedException | This pattern is not trained. |
| CogPMAlignWrongTrainModeException | TrainMode is neither ShapeModelsWithTransform or ShapeModelsWithImage. |
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 subusing 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