prepare_direct_variation_model — Prepare a variation model for comparison with an image.
prepare_direct_variation_model prepares a variation model for the image comparison with compare_variation_model or compare_ext_variation_model. The variation model must have been created with Mode='direct' with create_variation_model. In contrast to prepare_variation_model, the ideal image of the object and the corresponding variation image are not computed with train_variation_model, but are specified directly in RefImage and VarImage. This is useful if the variation model should be created from a single image, as described with create_variation_model. The variation image should typically be created with edge operators like sobel_amp, edges_image, or gray_range_rect.
prepare_direct_variation_model converts the ideal image RefImage and the variation image VarImage into two threshold images and stores them in the variation model. These threshold images are used in compare_variation_model or compare_ext_variation_model to perform the comparison of the current image to the variation model.
Two thresholds are used to compute the threshold images. The parameter AbsThreshold determines the minimum amount of gray levels by which the image of the current object must differ from the image of the ideal object. The parameter VarThreshold determines a factor relative to the variation image for the minimum difference of the current image and the ideal image. VarThreshold utilizes VarImage to define regions, in which differences in gray values may occur which should not be counted as errors. This allows variations for specific parts of the object to inspect. AbsThreshold and VarThreshold each can contain one or two values. If two values are specified, different thresholds can be determined for too bright and too dark pixels. In this mode, the first value refers to too bright pixels, while the second value refers to too dark pixels. If one value is specified, this value refers to both the too bright and too dark pixels. Let i(x,y) be the ideal image RefImage, v(x,y) the variation image VarImage, , , , and (or , , , and , respectively). Then the two threshold images are computed as follows:
After the threshold images have been created they can be read out with get_thresh_images_variation_model.
It should be noted that RefImage and VarImage are not stored as the ideal and variation images in the model to save memory in the model.
This operator modifies the state of the following input parameter:
Reference image of the object.
Variation image of the object.
ID of the variation model.
Absolute minimum threshold for the differences between the image and the variation model.
Default value: 10
Suggested values: 0, 5, 10, 15, 20, 30, 40, 50
Restriction: AbsThreshold >= 0
Threshold for the differences based on the variation of the variation model.
Default value: 2
Suggested values: 1, 1.5, 2, 2.5, 3, 3.5, 4, 4.5, 5
Restriction: VarThreshold >= 0
read_image (Image, 'model') sobel_amp (Image, VarImage, 'sum_abs', 3) get_image_pointer1 (Image, Pointer, Type, Width, Height) create_variation_model (Width, Height, Type, 'direct', ModelID) prepare_direct_variation_model (Image, VarImage, ModelID, 20, 1) write_variation_model (ModelID, 'model.var') clear_variation_model (ModelID)
prepare_direct_variation_model returns 2 (H_MSG_TRUE) if all parameters are correct.
sobel_amp, edges_image, gray_range_rect
compare_variation_model, compare_ext_variation_model, get_thresh_images_variation_model, write_variation_model