prepare_direct_variation_model T_prepare_direct_variation_model PrepareDirectVariationModel PrepareDirectVariationModel prepare_direct_variation_model (Operator)
Name
prepare_direct_variation_model T_prepare_direct_variation_model PrepareDirectVariationModel PrepareDirectVariationModel prepare_direct_variation_model
— Prepare a variation model for comparison with an image.
Signature
void PrepareDirectVariationModel (const HObject& RefImage , const HObject& VarImage , const HTuple& ModelID , const HTuple& AbsThreshold , const HTuple& VarThreshold )
void HVariationModel ::PrepareDirectVariationModel (const HImage& RefImage , const HImage& VarImage , const HTuple& AbsThreshold , const HTuple& VarThreshold ) const
void HVariationModel ::PrepareDirectVariationModel (const HImage& RefImage , const HImage& VarImage , double AbsThreshold , double VarThreshold ) const
static void HOperatorSet .PrepareDirectVariationModel (HObject refImage , HObject varImage , HTuple modelID , HTuple absThreshold , HTuple varThreshold )
void HVariationModel .PrepareDirectVariationModel (HImage refImage , HImage varImage , HTuple absThreshold , HTuple varThreshold )
void HVariationModel .PrepareDirectVariationModel (HImage refImage , HImage varImage , double absThreshold , double varThreshold )
Description
prepare_direct_variation_model prepare_direct_variation_model PrepareDirectVariationModel PrepareDirectVariationModel PrepareDirectVariationModel prepare_direct_variation_model
prepares a variation model
for the image comparison with compare_variation_model compare_variation_model CompareVariationModel CompareVariationModel CompareVariationModel compare_variation_model
or
compare_ext_variation_model compare_ext_variation_model CompareExtVariationModel CompareExtVariationModel CompareExtVariationModel compare_ext_variation_model
. The variation model must have
been created with Mode Mode Mode Mode mode mode
='direct' "direct" "direct" "direct" "direct" "direct" with
create_variation_model create_variation_model CreateVariationModel CreateVariationModel CreateVariationModel create_variation_model
. In contrast to
prepare_variation_model prepare_variation_model PrepareVariationModel PrepareVariationModel PrepareVariationModel prepare_variation_model
, the ideal image of the object and
the corresponding variation image are not computed with
train_variation_model train_variation_model TrainVariationModel TrainVariationModel TrainVariationModel train_variation_model
, but are specified directly in
RefImage RefImage RefImage RefImage refImage ref_image
and VarImage VarImage VarImage VarImage varImage var_image
. This is useful if the
variation model should be created from a single image, as described
with create_variation_model create_variation_model CreateVariationModel CreateVariationModel CreateVariationModel create_variation_model
. The variation image should
typically be created with edge operators like sobel_amp sobel_amp SobelAmp SobelAmp SobelAmp sobel_amp
,
edges_image edges_image EdgesImage EdgesImage EdgesImage edges_image
, or gray_range_rect gray_range_rect GrayRangeRect GrayRangeRect GrayRangeRect gray_range_rect
.
prepare_direct_variation_model prepare_direct_variation_model PrepareDirectVariationModel PrepareDirectVariationModel PrepareDirectVariationModel prepare_direct_variation_model
converts the ideal image
RefImage RefImage RefImage RefImage refImage ref_image
and the variation image VarImage VarImage VarImage VarImage varImage var_image
into two
threshold images and stores them in the variation model. These
threshold images are used in compare_variation_model compare_variation_model CompareVariationModel CompareVariationModel CompareVariationModel compare_variation_model
or
compare_ext_variation_model compare_ext_variation_model CompareExtVariationModel CompareExtVariationModel CompareExtVariationModel 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 AbsThreshold AbsThreshold AbsThreshold absThreshold abs_threshold
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 VarThreshold VarThreshold VarThreshold varThreshold var_threshold
determines a factor relative to the variation
image for the minimum difference of the current image and the ideal
image.
VarThreshold VarThreshold VarThreshold VarThreshold varThreshold var_threshold
utilizes VarImage VarImage VarImage VarImage varImage var_image
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 AbsThreshold AbsThreshold AbsThreshold absThreshold abs_threshold
and VarThreshold VarThreshold VarThreshold VarThreshold varThreshold var_threshold
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 RefImage RefImage RefImage refImage ref_image
,
v(x,y) the variation image VarImage VarImage VarImage VarImage varImage var_image
,
,
,
,
and
(or
,
,
, and
,
respectively). Then the two threshold images
are computed as follows:
If the current image c(x,y) is compared to the
variation model using compare_variation_model compare_variation_model CompareVariationModel CompareVariationModel CompareVariationModel compare_variation_model
, the output
region contains all points that differ substantially from the model,
i.e., that fulfill the following condition:
In compare_ext_variation_model compare_ext_variation_model CompareExtVariationModel CompareExtVariationModel CompareExtVariationModel compare_ext_variation_model
, extended comparison modes
are available, which return only too bright errors, only too dark
errors, or bright and dark errors as separate regions.
After the threshold images have been created they can be read out
with get_thresh_images_variation_model get_thresh_images_variation_model GetThreshImagesVariationModel GetThreshImagesVariationModel GetThreshImagesVariationModel get_thresh_images_variation_model
.
It should be noted that RefImage RefImage RefImage RefImage refImage ref_image
and VarImage VarImage VarImage VarImage varImage var_image
are
not stored as the ideal and variation images in the model to save
memory in the model.
Execution Information
Multithreading type: reentrant (runs in parallel with non-exclusive operators).
Multithreading scope: global (may be called from any thread).
Processed without parallelization.
This operator modifies the state of the following input parameter:
During execution of this operator, access to the value of this parameter must be synchronized if it is used across multiple threads.
Parameters
RefImage RefImage RefImage RefImage refImage ref_image
(input_object) singlechannelimage →
object HImage HObject HImage Hobject (byte / int2 / uint2)
Reference image of the object.
VarImage VarImage VarImage VarImage varImage var_image
(input_object) singlechannelimage →
object HImage HObject HImage Hobject (byte / int2 / uint2)
Variation image of the object.
ModelID ModelID ModelID ModelID modelID model_id
(input_control, state is modified) variation_model →
HVariationModel , HTuple HHandle HTuple Htuple (handle) (IntPtr ) (HHandle ) (handle )
ID of the variation model.
AbsThreshold AbsThreshold AbsThreshold AbsThreshold absThreshold abs_threshold
(input_control) number(-array) →
HTuple MaybeSequence[Union[float, int]] HTuple Htuple (real / integer) (double / int / long) (double / Hlong) (double / Hlong)
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
VarThreshold VarThreshold VarThreshold VarThreshold varThreshold var_threshold
(input_control) number(-array) →
HTuple MaybeSequence[Union[float, int]] HTuple Htuple (real / integer) (double / int / long) (double / Hlong) (double / Hlong)
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
Example (HDevelop)
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')
Result
prepare_direct_variation_model prepare_direct_variation_model PrepareDirectVariationModel PrepareDirectVariationModel PrepareDirectVariationModel prepare_direct_variation_model
returns TRUE if all
parameters are correct.
Possible Predecessors
sobel_amp sobel_amp SobelAmp SobelAmp SobelAmp sobel_amp
,
edges_image edges_image EdgesImage EdgesImage EdgesImage edges_image
,
gray_range_rect gray_range_rect GrayRangeRect GrayRangeRect GrayRangeRect gray_range_rect
Possible Successors
compare_variation_model compare_variation_model CompareVariationModel CompareVariationModel CompareVariationModel compare_variation_model
,
compare_ext_variation_model compare_ext_variation_model CompareExtVariationModel CompareExtVariationModel CompareExtVariationModel compare_ext_variation_model
,
get_thresh_images_variation_model get_thresh_images_variation_model GetThreshImagesVariationModel GetThreshImagesVariationModel GetThreshImagesVariationModel get_thresh_images_variation_model
,
write_variation_model write_variation_model WriteVariationModel WriteVariationModel WriteVariationModel write_variation_model
Alternatives
prepare_variation_model prepare_variation_model PrepareVariationModel PrepareVariationModel PrepareVariationModel prepare_variation_model
See also
create_variation_model create_variation_model CreateVariationModel CreateVariationModel CreateVariationModel create_variation_model
Module
Matching