Operator Reference

check_differencecheck_differenceCheckDifferenceCheckDifferencecheck_difference (Operator)

check_differencecheck_differenceCheckDifferenceCheckDifferencecheck_difference — Compare two images pixel by pixel.

Signature

Herror check_difference(const Hobject Image, const Hobject Pattern, Hobject* Selected, const char* Mode, const Hlong DiffLowerBound, const Hlong DiffUpperBound, const Hlong GrayOffset, const Hlong AddRow, const Hlong AddCol)

Herror T_check_difference(const Hobject Image, const Hobject Pattern, Hobject* Selected, const Htuple Mode, const Htuple DiffLowerBound, const Htuple DiffUpperBound, const Htuple GrayOffset, const Htuple AddRow, const Htuple AddCol)

void CheckDifference(const HObject& Image, const HObject& Pattern, HObject* Selected, const HTuple& Mode, const HTuple& DiffLowerBound, const HTuple& DiffUpperBound, const HTuple& GrayOffset, const HTuple& AddRow, const HTuple& AddCol)

HRegion HImage::CheckDifference(const HImage& Pattern, const HString& Mode, Hlong DiffLowerBound, Hlong DiffUpperBound, Hlong GrayOffset, Hlong AddRow, Hlong AddCol) const

HRegion HImage::CheckDifference(const HImage& Pattern, const char* Mode, Hlong DiffLowerBound, Hlong DiffUpperBound, Hlong GrayOffset, Hlong AddRow, Hlong AddCol) const

HRegion HImage::CheckDifference(const HImage& Pattern, const wchar_t* Mode, Hlong DiffLowerBound, Hlong DiffUpperBound, Hlong GrayOffset, Hlong AddRow, Hlong AddCol) const   ( Windows only)

def check_difference(image: HObject, pattern: HObject, mode: str, diff_lower_bound: int, diff_upper_bound: int, gray_offset: int, add_row: int, add_col: int) -> HObject

Description

check_differencecheck_differenceCheckDifferenceCheckDifferencecheck_difference selects from the input image ImageImageImageimageimage those pixels ( ), whose gray value difference to the corresponding pixels in PatternPatternPatternpatternpattern is inside (outside) of the interval . The pixels of PatternPatternPatternpatternpattern are translated by with respect to ImageImageImageimageimage. Let be the gray value from PatternPatternPatternpatternpattern translated by with respect to .

If the selected mode ModeModeModemodemode is 'diff_inside'"diff_inside""diff_inside""diff_inside""diff_inside", a pixel is selected if If the mode is set to 'diff_outside'"diff_outside""diff_outside""diff_outside""diff_outside", a pixel is selected if g_o - g_p - GrayOffset < DiffLowerBound or g_o - g_p - GrayOffset > DiffUpperBound. This test is performed for all points of the domain (region) of ImageImageImageimageimage, intersected with the domain of the translated PatternPatternPatternpatternpattern. All points fulfilling the above condition are aggregated in the output region. The two images may be of different size. Typically, PatternPatternPatternpatternpattern is smaller than ImageImageImageimageimage.

Execution Information

  • Multithreading type: reentrant (runs in parallel with non-exclusive operators).
  • Multithreading scope: global (may be called from any thread).
  • Automatically parallelized on tuple level.

Parameters

ImageImageImageimageimage (input_object)  singlechannelimage(-array) objectHImageHObjectHObjectHobject (byte)

Input image.

PatternPatternPatternpatternpattern (input_object)  singlechannelimage(-array) objectHImageHObjectHObjectHobject (byte)

Comparison image.

SelectedSelectedSelectedselectedselected (output_object)  region(-array) objectHRegionHObjectHObjectHobject *

Points in which the two images are similar/different.

ModeModeModemodemode (input_control)  string HTuplestrHTupleHtuple (string) (string) (HString) (char*)

Mode: return similar or different pixels.

Default: 'diff_outside' "diff_outside" "diff_outside" "diff_outside" "diff_outside"

Suggested values: 'diff_inside'"diff_inside""diff_inside""diff_inside""diff_inside", 'diff_outside'"diff_outside""diff_outside""diff_outside""diff_outside"

DiffLowerBoundDiffLowerBoundDiffLowerBounddiffLowerBounddiff_lower_bound (input_control)  number HTupleintHTupleHtuple (integer) (int / long) (Hlong) (Hlong)

Lower bound of the tolerated gray value difference.

Default: -5

Suggested values: 0, -1, -2, -3, -5, -7, -10, -12, -15, -17, -20, -25, -30

Value range: -255 ≤ DiffLowerBound DiffLowerBound DiffLowerBound diffLowerBound diff_lower_bound ≤ 255 (lin)

Minimum increment: 1

Recommended increment: 2

DiffUpperBoundDiffUpperBoundDiffUpperBounddiffUpperBounddiff_upper_bound (input_control)  number HTupleintHTupleHtuple (integer) (int / long) (Hlong) (Hlong)

Upper bound of the tolerated gray value difference.

Default: 5

Suggested values: 0, 1, 2, 3, 5, 7, 10, 12, 15, 17, 20, 25, 30

Value range: -255 ≤ DiffUpperBound DiffUpperBound DiffUpperBound diffUpperBound diff_upper_bound ≤ 255 (lin)

Minimum increment: 1

Recommended increment: 2

GrayOffsetGrayOffsetGrayOffsetgrayOffsetgray_offset (input_control)  number HTupleintHTupleHtuple (integer) (int / long) (Hlong) (Hlong)

Offset gray value subtracted from the input image.

Default: 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

Value range: -255 ≤ GrayOffset GrayOffset GrayOffset grayOffset gray_offset ≤ 255 (lin)

Minimum increment: 1

Recommended increment: 2

AddRowAddRowAddRowaddRowadd_row (input_control)  point.y HTupleintHTupleHtuple (integer) (int / long) (Hlong) (Hlong)

Row coordinate by which the comparison image is translated.

Default: 0

Suggested values: -200, -100, -20, -10, 0, 10, 20, 100, 200

Value range: -32000 ≤ AddRow AddRow AddRow addRow add_row ≤ 32000 (lin)

Minimum increment: 1

Recommended increment: 1

AddColAddColAddColaddColadd_col (input_control)  point.x HTupleintHTupleHtuple (integer) (int / long) (Hlong) (Hlong)

Column coordinate by which the comparison image is translated.

Default: 0

Suggested values: -200, -100, -20, -10, 0, 10, 20, 100, 200

Value range: -32000 ≤ AddCol AddCol AddCol addCol add_col ≤ 32000 (lin)

Minimum increment: 1

Recommended increment: 1

Complexity

Let be the number of valid pixels. Then the runtime complexity is .

Result

check_differencecheck_differenceCheckDifferenceCheckDifferencecheck_difference returns 2 ( H_MSG_TRUE) if all parameters are correct. The behavior with respect to the input images and output regions can be determined by setting the values of the flags 'no_object_result'"no_object_result""no_object_result""no_object_result""no_object_result", 'empty_region_result'"empty_region_result""empty_region_result""empty_region_result""empty_region_result", and 'store_empty_region'"store_empty_region""store_empty_region""store_empty_region""store_empty_region" with set_systemset_systemSetSystemSetSystemset_system. If necessary, an exception is raised.

Possible Successors

connectionconnectionConnectionConnectionconnection, select_shapeselect_shapeSelectShapeSelectShapeselect_shape, reduce_domainreduce_domainReduceDomainReduceDomainreduce_domain, select_grayselect_graySelectGraySelectGrayselect_gray, rank_regionrank_regionRankRegionRankRegionrank_region, dilation1dilation1Dilation1Dilation1dilation1, openingopeningOpeningOpeningopening

Alternatives

sub_imagesub_imageSubImageSubImagesub_image, dyn_thresholddyn_thresholdDynThresholdDynThresholddyn_threshold

Module

Foundation