halcon三维点云数据处理(九)create_shape_model_3d_ignore_part_polarity

目录

一、create_shape_model_3d_ignore_part_polarity例程代码

这个示例程序展示了如何使用基于形状3D匹配来计算瓷砖垫片的3DPose。因为背景是强纹理的,设置'ignore_part_polarity'可以加快查找速度。

下面是create_shape_model_3d_ignore_part_polarity例程代码,我只保留了重要的处理部分。

csharp 复制代码
gen_cam_par_area_scan_division (0.0269462, -354.842, 1.27964e-005, 1.28e-005, 254.24, 201.977, 512, 384, CamParam)

acquire_shape_models (WindowHandle, CamParam, ShapeModel3DID1, ShapeModel3DID2)

* 
MatchingParameters := ['num_matches', 'pose_refinement']
MatchingParameterValues := [2, 'least_squares_high']
MinScore := 0.65
Greediness := 0.9
NumLevels := 0
* 
* Matching loop
NumImages := 9
for I := 1 to NumImages by 1
    read_image (Image, 'tile_spacers/tile_spacers_' + I$'02')

    find_shape_model_3d (Image, ShapeModel3DID1, MinScore, Greediness, NumLevels, MatchingParameters, MatchingParameterValues, Pose, CovPose, Score1)

    for J := 0 to |Score1| - 1 by 1
        PoseTmp := Pose[J * 7:J * 7 + 6]
        project_shape_model_3d (ModelContours, ShapeModel3DID1, CamParam, PoseTmp, 'true', rad(30))
        dev_display (ModelContours)
    endfor

    find_shape_model_3d (Image, ShapeModel3DID2, MinScore, Greediness, NumLevels, MatchingParameters, MatchingParameterValues, Pose, CovPose, Score2)
   
    for J := 0 to |Score2| - 1 by 1
        PoseTmp := Pose[J * 7:J * 7 + 6]
        project_shape_model_3d (ModelContours, ShapeModel3DID1, CamParam, PoseTmp, 'true', rad(30))
        dev_display (ModelContours)
    endfor
  
endfor

二、代码理解

create_shape_model_3d函数的参数'metric' :

'metric' = 'ignore_part_polarity':只允许在模型的不同部分之间更改对比极性,而在相同模型部分内的模型点的极性不得更改。同一模型组件内的模型点的极性是相同的,如果图像包含有强烈纹理的背景或杂乱的对象,则应该使用ignore_part_polarity指标。只可以单通道图像。

'metric' = 'ignore_local_polarity':即使每个单独的模型点的对比极性发生变化,也可以找到模型。该指标适用于单通道图像和多通道图像。既可以单通道图像,也可以多通道图像。

请注意,通常情况下,find_shape_model_3d返回的匹配分数"ignore_part_polarity"比"ignore_local_polarity"要低。

find_shape_model_3d函数得到的Pose:它描述了三维物体模型在摄像机坐标下的姿态。ccs为摄像机坐标系,mcs为模型坐标系(即3D世界坐标系)。

project_shape_model_3d( : ModelContours : ShapeModel3DID, CamParam, Pose, HiddenSurfaceRemoval, MinFaceAngle : ) 将三维形状模型的边缘投影到图像坐标中。这里的输入参数Pose,是find_shape_model_3d函数得到的。给出三维物体模型在三维世界坐标系(mcs)中的坐标。首先,利用Pose给定的外部摄像机参数将它们转换到摄像机坐标系(ccs);然后,根据相机内部参数CamParam将这些坐标投影到图像坐标系中;

相关推荐
知来者逆2 小时前
计算机视觉——速度与精度的完美结合的实时目标检测算法RF-DETR详解
图像处理·人工智能·深度学习·算法·目标检测·计算机视觉·rf-detr
HyperAI超神经5 小时前
12个HPC教程汇总!从入门到实战,覆盖分子模拟/材料计算/生物信息分析等多个领域
图像处理·人工智能·深度学习·生物信息·分子模拟·材料计算·vasp
陈小峰_iefreer5 小时前
stone 3d v3.3.0版本发布,含时间线和连接器等新功能
3d·webgl·metaverse·cadcg
满怀101519 小时前
【OpenCV图像处理实战】从基础操作到工业级应用
图像处理·人工智能·python·opencv·计算机视觉·编程入门
子燕若水1 天前
“Daz to Unreal”将 G8 角色(包括表情)从 daz3d 导入到 UE5。在 UE5 中,我发现使用某个表情并与闭眼混合后,上眼睑出现了问题
3d·ue5
basketball6161 天前
Python torchvision.transforms 下常用图像处理方法
开发语言·图像处理·python
ACQTEC研索仪器1 天前
VIC-3D非接触全场应变测量系统用于小尺寸测量之电子元器件篇—研索仪器DIC数字图像相关技术
图像处理·dic·数字图像相关·vic-3d非接触全场应变测量·小尺寸测量
zhuyixiangyyds1 天前
day36图像处理OpenCV
图像处理·笔记·学习
勤奋的小懒猪1 天前
Halcon应用:相机标定之应用
图像处理·人工智能·计算机视觉
白熊1881 天前
【计算机视觉】CV实战项目- 深度解析FaceAI:一款全能的人脸检测与图像处理工具库
图像处理·人工智能·计算机视觉