The LobeComparerTool compares the outer contour of a cam with the trained nominal contour of a sample cam. Furthermore, the number and position of the beads are checked. In the case of asymmetrical cams or via the beads in the case of symmetrical cams, the output shows how the cam is rotated (surface with beads above or below). If a cam is “the wrong way round” or if no beads are found and the cam nevertheless has the matching outer contour, the cam is evaluated as correct. but with the indication that it is rotated (isMirrored). If the outer contour matches the trained cam, but the bead positions or their number do not, this is detected.

  1. Train image: Current, trained image; the cam should always be trained so that its major axis is parallel to the X-axis of the image and the beads are aligned to the right.

  2. Trained contour: Visualization of the corridor (tolerance band) in which the determined contour of the actual cam must be located.

  3. Trained contour mirrored: Visualization of the mirrored corridor (tolerance band) in which the determined contour of the actual cam must be located.

  4. Train - Contour Settings - Dimple Settings - Graphics: Various tabs for parameterizing the tool (see below).

  5. Train buttons: A new target image can be recorded here and trained on the basis of it.

The inner, dark circle of the cam is searched for using CogBlobTool. If a circular, dark blob of sufficient size is found, a fine search is performed using CogBlobTool with the help of the determined centroid of the area. The position of the cam is now known. Now the outer contour is scanned in a star shape from the determined centre point of the inner bore in either 1 or 2 degree steps. The scanning is similar to a circular search. The calipers, arranged in a row, search from the inside to the outside for an edge transition from light to dark. The determined contour must lie within a generated corridor of the nominal contour for the cam to be recognized as the correct type. It is also checked whether the actual contour lies within the mirrored nominal contour in order to recognize the position of the cam (mirrored - not mirrored) in the case of asymmetrical cams (eccentric cams). In the case of cams that have a sufficiently large ratio of main axis to base circle diameter, the orientation is determined. Based on this orientation, the positions of the beads are compared with the trained nominal positions. If there are more or less beads than the trained number or if they are at the wrong positions, this is detected. For cams without orientation (e.g. ring-shaped cams) the positions of the beads are checked in relation to each other, but not in relation to the cam. If, in the case of symmetrical cams, no identification of the position of the cam can be determined (mirrored or not mirrored) due to the identical actual contour with normal and mirrored nominal contour, a cam is considered mirrored if no bead was found.

Form 1

Form 2

Shape 3





  1. magenta small circle; center point: Visualization of the drill center found in the fine search.

  2. grey crosses; outer contour: With the help of the crosses the found outer contour of the cam is visualized in the respective scanning steps.

  3. magenta-colored, large circle; search region: In this search region, which is defined by the largest cam diameter, beads are searched for.

  4. cyan; found bead: Found beads are visualized







Deviating outer contour of the cam to the nominal contour



Outer contour is within the tolerance band of the nominal contour; mirrored or not mirrored has no influence on this flag



The number or position of the beads does not correspond to the trained cam.



Number and position of the beads correspond to the trained cam



Cam is not mirrored, but flag IsCorrectTypeAfterCheckDimple = 0



IsCorrectType = 0 and IsCorrectTypeAfterCheckDimple = 0



No beads found and IsCorrectType = 1


For symmetrical cams or cams with a low ratio of main axis to base circle diameter, the mirrored orientation of the cam can only be detected via the beads, i.e. no beads -> cam mirrored

Setting parameters - Contour Settings


Get inner circle and outer contour

  1. Checkbox Coarse search enabled: Coarse search can be deactivated by checkbox, for this the parameters x,y,radius must be specified under 5..

  2. Inner circle coarse: Setting parameter of the CogBlobTool, which roughly determines the inner bore.

  3. Inner circle fine: Configuration of the circle search, which precisely determines the inner circle based on the position found in the BlobTool (fine search).

  4. Outer contour points: This value (offset) is added to the found radius of the inner circle and used for the search for the outer contour.

  5. X,Y,Radius: Default values of the center point and the radius for circle search

  6. Train contour: Train the given features

Other settings

  1. Max. diff. inner circle radius between train and run: Setting of the maximum deviation between the trained inner radius and the determined circle.

  2. Outlier distance treshold:

  3. Multithreading/ Thread count: Runtime optimization by activating multithreading and setting the number of threads.

  4. Contour compare: - Checkbox Parallel: … - Countour deviation tolerance: Limit value by which the found contour may deviate from the trained contour.

  5. Min. length difference between main axis and conjugate axis:

Setting parameters - Dimple Settings

  1. Dimple check enabled: Checkbox for activation of a bead search

  2. Coarse search by blob: Settings of the BlobTool, which performs a coarse bead search.

  3. Search region radius: In a circle with this radius around the found blobs, a fine search for beads is performed using PatMax (note: the default value is only an offset, which is added to the determined blob diameter).

  4. Fine search by CogPMAlignTool: Settings for PatMax (fine search for beads)

  5. Match positions by LocationMatcher: Training and matching of the actual positions of the beads with the target positions


  1. The message Is mainaxis unique indicates whether the directions of rotation of the cam can be determined. (true: the beads can be trained to position dependent on the main axis; false: the beads are trained at a distance to the center of the inner circle and to each other).

  2. If the main axis is unique, there is no coarse search for beads using BlobTools, but the beads are searched for using PatMax within the magenta search region.

  3. If the main axis is not clear, the beads are roughly pre-detected by means of a blob search.

  4. The results of the blob search (coarse search for beads) with an ambiguous main axis are presorted in the BlobTool, e.g. according to area, connectivity label and strain.