set_dict_objectT_set_dict_objectSetDictObjectSetDictObjectset_dict_object (算子)
名称
set_dict_objectT_set_dict_objectSetDictObjectSetDictObjectset_dict_object — 将键/对象对添加到字典中。
签名
void SetDictObject(const HObject& Object, const HTuple& DictHandle, const HTuple& Key)
void HDict::SetDictObject(const HObject& Object, const HTuple& Key) const
void HDict::SetDictObject(const HObject& Object, const HString& Key) const
void HDict::SetDictObject(const HObject& Object, const char* Key) const
void HDict::SetDictObject(const HObject& Object, const wchar_t* Key) const
(
Windows only)
描述
set_dict_objectset_dict_objectSetDictObjectSetDictObjectSetDictObjectset_dict_object stores an object associated with a key in the
dictionary.
The dictionary is denoted by the DictHandleDictHandleDictHandleDictHandledictHandledict_handle parameter.
ObjectObjectObjectObjectobjectValobject is copied by the operation and can thus be
immediately reused.
Thereby the object data is copied in HALCON's object database,
meaning the new object contains a reference to ObjectObjectObjectObjectobjectValobject,
see copy_objcopy_objCopyObjCopyObjCopyObjcopy_obj。
Both an empty object or an object tuple are considered
as a valid value that can be associated with the key.
If any data (tuple or object) was already associated with given key
(KeyKeyKeyKeykeykey), the old data is destroyed by set_dict_objectset_dict_objectSetDictObjectSetDictObjectSetDictObjectset_dict_object
and replaced by ObjectObjectObjectObjectobjectValobject。
The KeyKeyKeyKeykeykey has to be a string or an integer.
Strings are treated case sensitive.
The object data for the given key can be retrieved again from the dictionary
using get_dict_objectget_dict_objectGetDictObjectGetDictObjectGetDictObjectget_dict_object。
执行信息
- 多线程类型:可重入(与非独占算子并行运行)。
- 多线程作用域:全局(可从任何线程调用)。
- 未采用并行化处理。
此算子修改后续输入参数的状态:
在执行此算子时,若该参数值需在多个线程间使用,则必须对其访问进行同步。
参数
ObjectObjectObjectObjectobjectValobject (输入对象) object(-array) → objectHObjectHObjectHObjectHobject
Object to be associated with the key.
DictHandleDictHandleDictHandleDictHandledictHandledict_handle (输入控制,状态被修改) dict → HDict, HTupleHHandleHTupleHtuple (handle) (IntPtr) (HHandle) (handle)
Dictionary handle.
元素数量:
DictHandle == 1
KeyKeyKeyKeykeykey (输入控制) string → HTupleUnion[str, int]HTupleHtuple (string / integer) (string / int / long) (HString / Hlong) (char* / Hlong)
Key string.
元素数量:
Key == 1
限制:
length(Key) > 0
示例(HDevelop)
create_dict (Dict)
read_image (Image, 'filename')
set_dict_object (Image, Dict, 'my_image')
结果
If the operation succeeds, set_dict_tupleset_dict_tupleSetDictTupleSetDictTupleSetDictTupleset_dict_tuple 返回 2 ( H_MSG_TRUE )。否则将抛出异常。 Possible error conditions include
invalid parameters (handle or key) or resource allocation error.
可能的前趋
create_dictcreate_dictCreateDictCreateDictCreateDictcreate_dict
可能的后继
set_dict_objectset_dict_objectSetDictObjectSetDictObjectSetDictObjectset_dict_object,
set_dict_tupleset_dict_tupleSetDictTupleSetDictTupleSetDictTupleset_dict_tuple
替代
set_dict_tupleset_dict_tupleSetDictTupleSetDictTupleSetDictTupleset_dict_tuple
另见
create_dictcreate_dictCreateDictCreateDictCreateDictcreate_dict,
set_dict_tupleset_dict_tupleSetDictTupleSetDictTupleSetDictTupleset_dict_tuple,
get_dict_tupleget_dict_tupleGetDictTupleGetDictTupleGetDictTupleget_dict_tuple,
get_dict_objectget_dict_objectGetDictObjectGetDictObjectGetDictObjectget_dict_object,
remove_dict_keyremove_dict_keyRemoveDictKeyRemoveDictKeyRemoveDictKeyremove_dict_key,
get_dict_paramget_dict_paramGetDictParamGetDictParamGetDictParamget_dict_param
模块
基础