check_difference ( Image, Pattern : Selected : Mode, DiffLowerBound, DiffUpperBound, GreyOffset, AddRow, AddCol : )
Compare two image pixel by pixel.
check_difference selects from the input image
Image those pixels (g_{o} = g_{Image}),
for which the gray value difference to the corresponding pixels in
Pattern is inside (outside) of the interval
[DiffLowerBound,DiffLowerBound].
The pixels of Pattern are
translated by
(AddRow,AddCol) with respect to
Image. Let g_{p} be the gray value from
Pattern translated by
(AddRow,AddCol) w.r.t. g_{o}.
If the selected mode Mode is 'diff_inside',
a pixel g_{o} is selected if
g_o - g_p - GreyOffset > DiffLowerBound and
g_o - g_p - GreyOffset < DiffUpperBound.
If the mode is set to 'diff_outside', a pixel g_{o} is selected if
g_o - g_p - GreyOffset <= DiffLowerBound or
g_o - g_p - GreyOffset >= DiffUpperBound.
This test is performed for all points of the domain (region) of
Image, intersected with the domain of the translated
Pattern. All points fulfilling the above condition are
aggregated in the output region. The two images may be of different
size. Typically, Pattern is smaller than
Image.
Parameters
Image (input_object)
|
image(-array) -> object : byte
|
Image to be examined. |
Pattern (input_object)
|
image(-array) -> object : byte
|
Comparison image. |
Selected (output_object)
|
region(-array) -> object
|
Points in which the two images are similar/different. |
Mode (input_control)
|
string -> string
|
Mode: return similar or different pixels. |
Default value: 'diff_outside' |
Suggested values: 'diff_inside', 'diff_outside' |
DiffLowerBound (input_control)
|
number -> integer
|
Lower bound of the tolerated gray value difference. |
Default value: -5 |
Suggested values: 0, -1, -2, -3, -5, -7, -10, -12, -15, -17, -20, -25, -30 |
Range of values: -255 <= DiffLowerBound <= 255 (lin) |
Minimum increment: 1
|
Recommended increment: 2
|
Restriction: (-255 <= DiffLowerBound) && (DiffLowerBound <= 255) |
DiffUpperBound (input_control)
|
number -> integer
|
Upper bound of the tolerated gray value difference. |
Default value: 5 |
Suggested values: 0, 1, 2, 3, 5, 7, 10, 12, 15, 17, 20, 25, 30 |
Range of values: -255 <= DiffUpperBound <= 255 (lin) |
Minimum increment: 1
|
Recommended increment: 2
|
Restriction: (-255 <= DiffUpperBound) && (DiffUpperBound <= 255) |
GreyOffset (input_control)
|
number -> integer
|
Offset gray value subtracted from Image. |
Default value: 0 |
Suggested values: -30, -25, -20, -17, -15, -12, -10, -7, -5, -3, -2, -1, 0, 1, 2, 3, 5, 7, 10, 12, 15, 17, 20, 25, 30 |
Range of values: -255 <= GreyOffset <= 255 (lin) |
Minimum increment: 1
|
Recommended increment: 2
|
Restriction: (-255 <= GreyOffset) && (GreyOffset <= 255) |
AddRow (input_control)
|
point.y -> integer
|
Row coordinate, by which Pattern is translated. |
Default value: 0 |
Suggested values: -200, -100, -20, -10, 0, 10, 20, 100, 200 |
Range of values: -32000 <= AddRow <= 32000 (lin) |
Minimum increment: 1
|
Recommended increment: 1
|
AddCol (input_control)
|
point.x -> integer
|
Column coordinate, by which Pattern is translated. |
Default value: 0 |
Suggested values: -200, -100, -20, -10, 0, 10, 20, 100, 200 |
Range of values: -32000 <= AddCol <= 32000 (lin) |
Minimum increment: 1
|
Recommended increment: 1
|
Complexity
Let F be the number of valid pixels. Then the runtime complexity
is O(F).
Result
check_difference returns TRUE if all parameters
are correct. The behaviour with respect to the input images and
output regions can be determined by setting the values of the flags
'no_object_result', 'empty_region_result', and
'store_empty_region' with set_system.
If necessary, an exception is raised.
Possible Successors
connection,
select_shape,
reduce_domain,
select_grey__,
count,
dilation1,
opening
Alternatives
sub__,
dyn_threshold__
Copyright © 1996-1997 MVTec Software GmbH