Generate a rotation symmetric classifier from the input classifier.
Rotation symmetric in this context means that the resulting classifier
will be able to identify the trained object in more than just the
trained orientation (range that can be covered is controlled by the
startAngle and stopAngle
parameters). The angular sensitivity and the capability to report
the found angle are controlled view the numLayers
and the rotationsPerLayer parameter. For example
it is possible to put all the rotations into just one layer
(numLayers = 1,
rotationsPerLayer = 255) so that the classifier
will be able to correctly identify the object but not its orientation.
The other extreme would be to have one rotation per layer, so that the
layer information from the search function directly corresponds to
orientation. Note that ShapeFinder (1) has very limited angular
resolution - if you are interested in detecting orientation with a
high degree of accuracy, consider using ShapeFinder2. Note that the
product of numLayers and
rotationsPerLayer should not become too high,
otherwise the classifier will become fairly big and slow to process.
Namespace: Stemmer.Cvb.ShapeFinder
Assembly: Stemmer.Cvb.ShapeFinder (in Stemmer.Cvb.ShapeFinder.dll) Version: 14.0.0.0
Syntax
public static Classifier CreateRotationInvariant( Classifier source, Angle startAngle, Angle stopAngle, int numLayers, int rotationsPerLayer )
Parameters
- source
- Type: Stemmer.Cvb.ShapeFinderClassifier
classifier to generate the rotation symmetric classifier from - startAngle
- Type: Stemmer.CvbAngle
rotation start angle in radians; must be within the range [-pi...pi] and less than or equal to stopAngle - stopAngle
- Type: Stemmer.CvbAngle
rotation stop angle in radians; must be within the range [-pi...pi] and greater or equal to startAngle - numLayers
- Type: SystemInt32
number of layers to generate for the orientation; layers will be used for identifying the orientation of the object in the result feedback of the search functions - rotationsPerLayer
- Type: SystemInt32
number of rotational states to be added per layer; decides over the angular resolution (which will never be better than roughly 1.4 degrees!)
Return Value
Type: Classifiernewly created rotation invariant classifier
Exceptions
Exception | Condition |
---|---|
ArgumentNullException | If source is null |
ArgumentOutOfRangeException | If startAngle or stopAngle exceeds the range [-pi...pi] or if startAngle is greater than stopAngle or if numLayers or rotationsPerLayer are less than 1 |
See Also