欢迎来到本博客
Halcon算子太多,学习查找都没有系统的学习查找路径,本专栏主要分享Halcon各类算子含义及用法,有时间会更新具体案例。
具体食用方式:可以点击本专栏【Halcon算子快速查找】–>搜索你要查询的算子名称;或者点击Halcon算子汇总博客,即可食用。
支持:如果觉得博主的文章还不错或者您用得到的话,可以悄悄关注一下博主哈,如果三连收藏支持就更好啦!这就是给予我最大的支持!
算子简介
函数名 | 解释 |
---|---|
serialize_object_model_3d() | 序列化三维对象模型。 |
set_object_model_3d_attrib() | 设置三维对象模型的属性。 |
serialize_object_model_3d( : : ObjectModel3D : SerializedItemHandle)
函数说明: serialize_object_model_3d
将3D对象模型的数据进行序列化。使用write_object_model_3d
的文件格式'om3'
写入文件的相同数据被转换为一个序列化的项。3D对象模型由ObjectModel3D句柄定义。序列化的3D对象模型通过SerializedItemHandle
句柄返回,可以通过deserialize_object_model_3d
进行反序列化。
函数参数:
ObjectModel3D:输入 3D对象模型句柄;
SerializedItemHandle:输出序列化项句柄;
无
set_object_model_3d_attrib( : : ObjectModel3D, AttribName, AttachExtAttribTo, AttribValues : ObjectModel3DOut)
函数说明: set_object_model_3d_attrib
函数用于将给定的标准属性或AttribName
中的扩展属性设置为ObjectModel3D
的值,并返回具有新属性值的3D对象模型ObjectModel3DOut
。set_object_model_3d_attrib
与set_object_model_3d_attrib_mod
相同,唯一的区别在于前者创建一个新的3D对象模型,而不修改原始的3D对象模型。可以通过设置参数AttachExtAttribTo
,将扩展属性的值附加到已存在的标准属性上:
对于标准属性,AttachExtAttribTo
参数将被忽略。如果AttribName
中的属性不存在,则会尝试创建它们。如果设置已存在的属性,则AttribValues
的长度必须与现有属性值匹配。
在这种情况下,现有的属性值将被替换。如果使用AttachExtAttribTo
将扩展属性附加到已存在的标准属性上,则AttribValues的长度必须与现有的属性值匹配。
函数参数:
ObjectModel3D:输入 3D对象模型句柄;
AttribName:输入属性名,具体如下表:
属性名 | 解释 |
---|---|
point_coord_x |
使用AttribValues设置3D点的x坐标。如果该属性不存在,则必须一次性使用’point_coord_x’、'point_coord_y’和’point_coord_z’设置x、y和z坐标。x、y和z坐标的数量必须相同。 |
point_coord_y |
使用AttribValues设置3D点的y坐标。如果该属性不存在,则必须一次性使用’point_coord_x’、'point_coord_y’和’point_coord_z’设置x、y和z坐标。x、y和z坐标的数量必须相同。 |
point_coord_z |
使用AttribValues设置3D点的z坐标。如果该属性不存在,则必须一次性使用’point_coord_x’、'point_coord_y’和’point_coord_z’设置x、y和z坐标。x、y和z坐标的数量必须相同。 |
point_normal_x |
使用AttribValues设置3D点的x分量法线。如果该属性不存在,则必须一次性使用’point_normal_x’、'point_normal_y’和’point_normal_z’设置3D点法线的x、y和z分量。x、y和z分量的数量必须与3D点的数量相同。请注意,给定的3D点法线将不会被归一化为长度为1。 |
point_normal_y |
使用AttribValues设置3D点的y分量法线。如果该属性不存在,则必须一次性使用’point_normal_x’、'point_normal_y’和’point_normal_z’设置3D点法线的x、y和z分量。x、y和z分量的数量必须与3D点的数量相同。请注意,给定的3D点法线将不会被归一化为长度为1。 |
point_normal_z |
使用AttribValues设置3D点的z分量法线。如果该属性不存在,则必须一次性使用’point_normal_x’、'point_normal_y’和’point_normal_z’设置3D点法线的x、y和z分量。x、y和z分量的数量必须与3D点的数量相同。请注意,给定的3D点法线将不会被归一化为长度为1。 |
triangles |
表示三角形的3D点的索引按照以下顺序使用AttribValues设置:AttribValues的前三个值(输入值0、1、2)表示第一个三角形,并包含三角形顶点对应的3D点的索引。第二个三个值(输入值3、4、5)表示第二个三角形,依此类推。三角形的方向是根据点索引的顺序确定的。 |
polygons |
使用AttribValues按照以下顺序设置表示多边形的3D点的索引:AttribValues的第一个值包含第一个多边形的点数量n。接下来的值(输入值1、2、…、n)包含第一个多边形的点的索引。下一个值(输入值n+1)包含第二个多边形的点数量m。接下来的m个值(输入值n+2、n+3、…、n+1+m)包含第二个多边形的点的索引,依此类推。 |
lines |
表示折线的3D点的索引按照以下顺序使用AttribValues设置:AttribValues的第一个值包含第一个折线的点数量n。接下来的值(输入值1、2、…、n)表示第一个折线的点的索引。下一个值(输入值n+1)包含第二个折线的点数量m。接下来的m个值(输入值n+2、n+3、…、n+1+m)表示第二个折线的点的索引,依此类推。所有的索引都对应已经存在的3D点。 |
xyz_mapping |
将3D点映射到图像坐标的方式是按照以下顺序使用AttribValues设置的:AttribValues的前两个值(输入值0和1)包含相应图像的宽度和高度。接下来的n个值(输入值2、3、…、n+1,其中n是3D点的数量)表示给定图像坐标中第n个点的行坐标。接下来的n个输入值(输入值n+2、n+3、…、n2+1)表示给定图像坐标中第n个点的列坐标。因此,输入值的总数是n2+2。 |
AttachExtAttribTo:输入定义扩展属性要附加到的位置,扩展属性是通过特殊运算符(例如distance_object_model_3d)从标准属性推导出的属性,或者用户定义的属性。扩展属性的名称是任意的,但必须以前缀‘&’
开头,例如’&my_attrib’。扩展属性可以具有任意数量的浮点值。可以通过设置参数AttachExtAttribTo
将扩展属性附加到已存在的3D对象模型的标准属性上。AttachExtAttribTo
的以下取值是可能的:具体如下表:
属性名 | 解释 |
---|---|
'object' or [] |
如果设置了此值,则指定的扩展属性在AttribName中与整个3D对象模型相关联。AttribValues中指定的值的数量没有限制。 |
points |
如果设置了此值,那么在AttribName中指定的扩展属性与对象模型的3D点相关联。在AttribValues中指定的值的数量必须与已经存在的3D点的数量相同。 |
triangles |
如果设置了此值,则在AttribName中指定的扩展属性与对象模型的三角形相关联。在AttribValues中指定的值的数量必须与已经存在的三角形的数量相同。 |
polygons |
如果设置了此值,则在AttribName中指定的扩展属性与对象模型的多边形相关联。在AttribValues中指定的值的数量必须与已经存在的多边形的数量相同。 |
lines |
如果设置了此值,则在AttribName中指定的扩展属性与对象模型的线段相关联。在AttribValues中指定的值的数量必须与已经存在的线段的数量相同。 |
如果在AttribName
中给出了多个属性,那么AttribValues
将被分成相等长度的子元组。然后,每个子元组将被分配给一个属性。例如,如果AttribName和AttribValues被设置为:
AttribName := ['&attrib1','&attrib2','&attrib3']
AttribValues := [0.0,1.0,2.0,3.0,4.0,5.0]
即:'&attrib1' = [0.0,1.0], '&attrib2' = [2.0,3.0], '&attrib3' = [4.0,5.0].
,因此,无法在一次调用中设置多个不同长度的属性。
AttribValues:输入属性值;
ObjectModel3DOut:输出 3D对象模型结果句柄;
set_object_model_3d_attrib.hdev 设置3D对象模型的属性
projective_trans_object_model_3d.hdev 对3D对象模型应用投影变换
本专栏博客汇总:Halcon算子汇总
今天的文章就到这里啦~
喜欢的话,点赞、收藏⭐️、关注哦 ~