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将这些坐标投影到图像坐标系中;

相关推荐
Coding茶水间4 小时前
基于深度学习的船舶检测系统演示与介绍(YOLOv12/v11/v8/v5模型+Pyqt5界面+训练代码+数据集)
图像处理·人工智能·深度学习·yolo·目标检测·计算机视觉
科研面壁者9 小时前
SPSS——绘制“简单分布散点图”,“矩阵散点图”,“简单点图”,“重叠散点图”,“3D分布散点图”
3d·信息可视化·矩阵·数据分析·spss·科研绘图
询问QQ:4877392789 小时前
双馈风力发电机DFIG的矢量控制策略及仿真模型研究——基于定子侧与转子侧电压定向控制及功率因数...
图像处理
laoliu199611 小时前
使用VScode+AI大模型驱动Blender建模
3d·ai·blender
吃吃今天努力学习了吗12 小时前
【论文阅读】Gaussian Grouping: Segment and Edit Anything in 3D Scenes
论文阅读·计算机视觉·3d·3dgs·三维分割
AndrewHZ14 小时前
【图像处理基石】有没有推荐的图像处理方向的期刊SCI?
图像处理·sci·tpami·期刊·遥感图像·tip·tgrs
CG_MAGIC1 天前
用ZBrush和Blender制作波洛3D肖像
3d·blender·效果图渲染·zbrush·渲云渲染
AndrewHZ1 天前
【遥感图像入门】DEM数据处理核心算法与Python实操指南
图像处理·python·算法·dem·高程数据·遥感图像·差值算法
Peter11467178501 天前
华中科技大学研究生课程《数字图像处理I》期末考试(2025-回忆版/电子信息与通信学院)
图像处理·人工智能·计算机视觉
Renderbus瑞云渲染农场1 天前
Maya相关插件有哪些?Maya云渲染插件哪些好用?
3d·云计算·3dsmax·maya