compare_ext_variation_modelT_compare_ext_variation_modelCompareExtVariationModelCompareExtVariationModelcompare_ext_variation_model比较扩展变体模型(算子)
名称
compare_ext_variation_modelT_compare_ext_variation_modelCompareExtVariationModelCompareExtVariationModelcompare_ext_variation_model — 将图像与变体模型进行比较。
签名
Herror T_compare_ext_variation_model(const Hobject Image, Hobject* Region, const Htuple ModelID, const Htuple Mode)
def compare_ext_variation_model(image: HObject, model_id: HHandle, mode: str) -> HObject
描述
compare_ext_variation_modelcompare_ext_variation_modelCompareExtVariationModelCompareExtVariationModelCompareExtVariationModelcompare_ext_variation_model 将输入图像
ImageImageImageImageimageimage 与由 ModelIDModelIDModelIDModelIDmodelIDmodel_id 指定的变体模型进行比较。
compare_ext_variation_modelcompare_ext_variation_modelCompareExtVariationModelCompareExtVariationModelCompareExtVariationModelcompare_ext_variation_model 是
compare_variation_modelcompare_variation_modelCompareVariationModelCompareVariationModelCompareVariationModelcompare_variation_model 扩展,为图像比较提供了更多模式。在调用 compare_ext_variation_modelcompare_ext_variation_modelCompareExtVariationModelCompareExtVariationModelCompareExtVariationModelcompare_ext_variation_model 之前,必须通过 prepare_variation_modelprepare_variation_modelPrepareVariationModelPrepareVariationModelPrepareVariationModelprepare_variation_model 或 prepare_direct_variation_modelprepare_direct_variation_modelPrepareDirectVariationModelPrepareDirectVariationModelPrepareDirectVariationModelprepare_direct_variation_model 创建变异模型的两个内部阈值图像。设 c(x,y)
表示输入图像 ImageImageImageImageimageimage,
表示两个阈值图像(参见 prepare_variation_modelprepare_variation_modelPrepareVariationModelPrepareVariationModelPrepareVariationModelprepare_variation_model 或 prepare_direct_variation_modelprepare_direct_variation_modelPrepareDirectVariationModelPrepareDirectVariationModelPrepareDirectVariationModelprepare_direct_variation_model)。当 ModeModeModeModemodemode
= 'absolute'"absolute""absolute""absolute""absolute""absolute" 时,输出区域 RegionRegionRegionRegionregionregion 将包含所有与模型存在显著差异的点,即满足以下条件的点:
此模式与 compare_variation_modelcompare_variation_modelCompareVariationModelCompareVariationModelCompareVariationModelcompare_variation_model 完全相同。当
ModeModeModeModemodemode = 'light'"light""light""light""light""light" 时,RegionRegionRegionRegionregionregion 包含所有过亮的点:
当 ModeModeModeModemodemode = 'dark'"dark""dark""dark""dark""dark" 时,RegionRegionRegionRegionregionregion 包含所有过暗的点:
最后,当 ModeModeModeModemodemode = 'light_dark'"light_dark""light_dark""light_dark""light_dark""light_dark" 时,RegionRegionRegionRegionregionregion 参数将返回两个区域。第一个区域包含 ModeModeModeModemodemode = 'light'"light""light""light""light""light" 的结果,第二个区域包含 ModeModeModeModemodemode = 'dark'"dark""dark""dark""dark""dark" 的结果。可通过 select_objselect_objSelectObjSelectObjSelectObjselect_obj 分别选取对应区域。
执行信息
- 多线程类型:可重入(与非独占算子并行运行)。
- 多线程作用域:全局(可从任何线程调用)。
- 在元组级别上自动并行化。
- 在域级别上自动并行化。
参数
ImageImageImageImageimageimage (输入对象) singlechannelimage(-array) → objectHImageHObjectHImageHobject (byte / int2 / uint2)
待比较对象的图像。
RegionRegionRegionRegionregionregion (输出对象) region(-array) → objectHRegionHObjectHRegionHobject *
包含与模型存在显著差异的点的区域。
ModelIDModelIDModelIDModelIDmodelIDmodel_id (输入控制) variation_model → HVariationModel, HTupleHHandleHTupleHtuple (handle) (IntPtr) (HHandle) (handle)
变体模型的 ID。
ModeModeModeModemodemode (输入控制) string → HTuplestrHTupleHtuple (string) (string) (HString) (char*)
用于比较变体模型的方法。
默认值:
'absolute'
"absolute"
"absolute"
"absolute"
"absolute"
"absolute"
建议值:
'absolute'"absolute""absolute""absolute""absolute""absolute", 'light'"light""light""light""light""light", 'dark'"dark""dark""dark""dark""dark", 'light_dark'"light_dark""light_dark""light_dark""light_dark""light_dark"
示例(HDevelop)
read_shape_model ('model.shm', TemplateID)
read_variation_model ('model.var', ModelID)
for K := 1 to 10 by 1
read_image (Image, 'pen-' + K$'02')
find_generic_shape_model (Image, TemplateID, MatchResultID, \
NumMatchResult)
get_generic_shape_model_result (MatchResultID, 'all', 'hom_mat_2d', \
HomMat2D)
dev_display (Image)
if (NumMatchResult == 1)
affine_trans_image (Image, ImageTrans, HomMat2D, 'constant', \
'false')
compare_ext_variation_model (ImageTrans, RegionDiff, ModelID, \
'absolute')
dev_display (RegionDiff)
endif
endfor
结果
compare_ext_variation_modelcompare_ext_variation_modelCompareExtVariationModelCompareExtVariationModelCompareExtVariationModelcompare_ext_variation_model 在所有参数正确且内部阈值图像已通过 prepare_variation_modelprepare_variation_modelPrepareVariationModelPrepareVariationModelPrepareVariationModelprepare_variation_model 或 prepare_direct_variation_modelprepare_direct_variation_modelPrepareDirectVariationModelPrepareDirectVariationModelPrepareDirectVariationModelprepare_direct_variation_model 生成时返回 2 (H_MSG_TRUE)。
可能的前趋
prepare_variation_modelprepare_variation_modelPrepareVariationModelPrepareVariationModelPrepareVariationModelprepare_variation_model,
prepare_direct_variation_modelprepare_direct_variation_modelPrepareDirectVariationModelPrepareDirectVariationModelPrepareDirectVariationModelprepare_direct_variation_model
可能的后继
select_objselect_objSelectObjSelectObjSelectObjselect_obj,
connectionconnectionConnectionConnectionConnectionconnection
替代
compare_variation_modelcompare_variation_modelCompareVariationModelCompareVariationModelCompareVariationModelcompare_variation_model,
dyn_thresholddyn_thresholdDynThresholdDynThresholdDynThresholddyn_threshold
另见
get_thresh_images_variation_modelget_thresh_images_variation_modelGetThreshImagesVariationModelGetThreshImagesVariationModelGetThreshImagesVariationModelget_thresh_images_variation_model
模块
匹配