check_differencecheck_differenceCheckDifferenceCheckDifferencecheck_difference检查差异(算子)
名称
check_differencecheck_differenceCheckDifferenceCheckDifferencecheck_difference — 逐像素比较两幅图像。
签名
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)
static void HOperatorSet.CheckDifference(HObject image, HObject pattern, out HObject selected, HTuple mode, HTuple diffLowerBound, HTuple diffUpperBound, HTuple grayOffset, HTuple addRow, HTuple addCol)
HRegion HImage.CheckDifference(HImage pattern, string mode, int diffLowerBound, int diffUpperBound, int grayOffset, int addRow, int addCol)
描述
check_differencecheck_differenceCheckDifferenceCheckDifferenceCheckDifferencecheck_difference 从输入图像
ImageImageImageImageimageimage 中选取那些像素(),其灰度值与
PatternPatternPatternPatternpatternpattern 中对应像素的差值位于区间
内(外)。PatternPatternPatternPatternpatternpattern 中的像素相对于 ImageImageImageImageimageimage 平移 步距。设 为
PatternPatternPatternPatternpatternpattern 中经
步距平移后相对于 的灰度值。
若所选模式 ModeModeModeModemodemode 为 'diff_inside'"diff_inside""diff_inside""diff_inside""diff_inside""diff_inside",选取像素 ,当
若模式设置为 'diff_outside'"diff_outside""diff_outside""diff_outside""diff_outside""diff_outside", 选取像素 ,当
g_o - g_p - GrayOffset < DiffLowerBound or
g_o - g_p - GrayOffset > DiffUpperBound.
此测试针对
ImageImageImageImageimageimage 图像域(区域)与平移后的
PatternPatternPatternPatternpatternpattern 图像域相交的所有点进行。所有满足上述条件的点均被聚合到输出区域中。两幅图像尺寸可能不同,通常 PatternPatternPatternPatternpatternpattern 小于
ImageImageImageImageimageimage。
执行信息
- 多线程类型:可重入(与非独占算子并行运行)。
- 多线程作用域:全局(可从任何线程调用)。
- 在元组级别上自动并行化。
参数
ImageImageImageImageimageimage (输入对象) singlechannelimage(-array) → objectHImageHObjectHImageHobject (byte)
输入图像。
PatternPatternPatternPatternpatternpattern (输入对象) singlechannelimage(-array) → objectHImageHObjectHImageHobject (byte)
对比图像。
SelectedSelectedSelectedSelectedselectedselected (输出对象) region(-array) → objectHRegionHObjectHRegionHobject *
两幅图像相似/不同之处。
ModeModeModeModemodemode (输入控制) string → HTuplestrHTupleHtuple (string) (string) (HString) (char*)
模式:返回相似的或不同的像素。
默认值:
'diff_outside'
"diff_outside"
"diff_outside"
"diff_outside"
"diff_outside"
"diff_outside"
建议值:
'diff_inside'"diff_inside""diff_inside""diff_inside""diff_inside""diff_inside", 'diff_outside'"diff_outside""diff_outside""diff_outside""diff_outside""diff_outside"
DiffLowerBoundDiffLowerBoundDiffLowerBoundDiffLowerBounddiffLowerBounddiff_lower_bound (输入控制) number → HTupleintHTupleHtuple (integer) (int / long) (Hlong) (Hlong)
容许灰度值差异的下限值。
默认值:
-5
建议值:
0, -1, -2, -3, -5, -7, -10, -12, -15, -17, -20, -25, -30
值范围:
-255
≤
DiffLowerBound
DiffLowerBound
DiffLowerBound
DiffLowerBound
diffLowerBound
diff_lower_bound
≤
255 (lin)
最小增量:
1
建议增量:
2
DiffUpperBoundDiffUpperBoundDiffUpperBoundDiffUpperBounddiffUpperBounddiff_upper_bound (输入控制) number → HTupleintHTupleHtuple (integer) (int / long) (Hlong) (Hlong)
容许灰度值差异的上限。
默认值:
5
建议值:
0, 1, 2, 3, 5, 7, 10, 12, 15, 17, 20, 25, 30
值范围:
-255
≤
DiffUpperBound
DiffUpperBound
DiffUpperBound
DiffUpperBound
diffUpperBound
diff_upper_bound
≤
255 (lin)
最小增量:
1
建议增量:
2
GrayOffsetGrayOffsetGrayOffsetGrayOffsetgrayOffsetgray_offset (输入控制) number → HTupleintHTupleHtuple (integer) (int / long) (Hlong) (Hlong)
从输入图像中减去的偏移灰度值。
默认值:
0
建议值:
-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
值范围:
-255
≤
GrayOffset
GrayOffset
GrayOffset
GrayOffset
grayOffset
gray_offset
≤
255 (lin)
最小增量:
1
建议增量:
2
AddRowAddRowAddRowAddRowaddRowadd_row (输入控制) point.y → HTupleintHTupleHtuple (integer) (int / long) (Hlong) (Hlong)
用于平移比较图像的行坐标。
默认值:
0
建议值:
-200, -100, -20, -10, 0, 10, 20, 100, 200
值范围:
-32000
≤
AddRow
AddRow
AddRow
AddRow
addRow
add_row
≤
32000 (lin)
最小增量:
1
建议增量:
1
AddColAddColAddColAddColaddColadd_col (输入控制) point.x → HTupleintHTupleHtuple (integer) (int / long) (Hlong) (Hlong)
用于平移比较图像的列坐标。
默认值:
0
建议值:
-200, -100, -20, -10, 0, 10, 20, 100, 200
值范围:
-32000
≤
AddCol
AddCol
AddCol
AddCol
addCol
add_col
≤
32000 (lin)
最小增量:
1
建议增量:
1
复杂度
设 为有效像素的数量。则运行时间复杂度为 。
结果
check_differencecheck_differenceCheckDifferenceCheckDifferenceCheckDifferencecheck_difference 在所有参数正确时返回 2 (H_MSG_TRUE)。通过 set_systemset_systemSetSystemSetSystemSetSystemset_system 算子设置标志 'no_object_result'"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""empty_region_result" 和 'store_empty_region'"store_empty_region""store_empty_region""store_empty_region""store_empty_region""store_empty_region" 的值,可确定系统对输入图像和输出区域的行为方式。如有必要,则抛出异常。
可能的后继
connectionconnectionConnectionConnectionConnectionconnection,
select_shapeselect_shapeSelectShapeSelectShapeSelectShapeselect_shape,
reduce_domainreduce_domainReduceDomainReduceDomainReduceDomainreduce_domain,
select_grayselect_graySelectGraySelectGraySelectGrayselect_gray,
rank_regionrank_regionRankRegionRankRegionRankRegionrank_region,
dilation1dilation1Dilation1Dilation1Dilation1dilation1,
openingopeningOpeningOpeningOpeningopening
替代
sub_imagesub_imageSubImageSubImageSubImagesub_image,
dyn_thresholddyn_thresholdDynThresholdDynThresholdDynThresholddyn_threshold
模块
基础