VisionPro 3D工具(自我笔记)

文章目录

前言


3D对象示意图及在 Cognex 3D位移传感器下方通过后生成的图像

深度图像使用灰度值表示高度轮廓。颜色越浅,表示相应元素越靠近传感器,深红色表示丢失的像素或者在传感器的视场中不可见的区域。

1.Cog3DPlanePlaneAngleScript

作用:输入两个平面,输出这两个平面的夹角(角度和弧度)

2.Cog3DRangeGreySplitterScript

作用:将高度和灰度图像(16位Range)分离为高度图像(16位Range)和灰度图像(16位Grey)

使用 Cog3DRangeGreySplitterScript CogToolBlock 将 RangeWithGrey 图像拆分为单独的3D深度图像和16位灰度图像。

Cog3DRangeGreySplitterScript CogToolBlock不支持API。编程用户可以检查工具块中的脚本以重新创建功能。工具块使用CogCopyRegion类来生成范围图像和灰色图像,如下所示:

1.创建两个区域:一个用于图像的左半部分(范围区域),另一个用于图像的右半部分(灰色区域)。

2.从输入范围图像中提取16位灰度图像。

3.用输入范围图像和范围区域调用CogCopyRegion运算符上的Execute方法一次,以生成输出范围图像。

4.用16位灰度图像和灰度区域再次调用CogCopyRegion运算符上的Execute方法,以生成输出灰度图像。

5.创建一个CogVisionDataContainer对象,并将范围图像和灰色图像都添加到容器对象中。

RangeWithGrey 图像是由深度图像和灰度图像组成的复合图像。

2.1 Coglmage16Range


2.2 CogVisionDataContainer

CogVisionDataContainer 是 key-value 键值对的索引列表。每个键值对的 key 是自定义的字符串,value 是对存储的图像数据的 ICogVisionData 类型的引用。


3.Cog3DRangeImageCrossSectionTool

作用:高度横截面工具,得出产品指定位置的Profile,在此Profile中可以拟合直线

得到工具放置区域的横截面

Cog3DRangeImageCrossSectionTool工具拥有大量操作符可以对截面进行分析

Profile 的点线拟合与计算拟合包括:

1.找点,包括最高点、最低点、中点(线段中点,两点中点)、交点、端点等等。

2.找线,包括线段和直线。

3.找圆。

计算包括

1.直线和直线的夹角。

2.点到点的距离。

3.点到直线的距离。

4.面积。

3.1 生成3D图像的横截面

下图演示了3D范围图像横截面工具使用理想化的切割平面返回的对象的轮廓。


下图在范围图像上说明了有助于轮廓生成的区域,切割平面和范围图像部分。

4.Cog3DRangeImagePlaneEstimatorTool工具

作用:平面拟合工具,选择区域拟合一个平面。

4.1 Area模式

1.Area Fit模式 :对区域内的所有像素使用最小二乘拟合平面。

2.设置平面的方向

4.2 Point模式

:以点区域执行平面拟合

设置点的 x-y 位置以及 z 坐标查找参数,进行平面拟合

1.必须指定最少三个点。

2.确定各点 z 坐标(高度)的方法

点的 x-y 位置上的单像素值

围绕此单像素的矩形邻域的像素中值

邻域内 的所有可见(未丢失)像素,执行平面估算时将所有像素作为单个像素使用。

4.3 设置选项卡

4.4 结果选项卡


5.Cog3DRangeImageHeightCalculatorTool

作用:高度计算工具,计算点到平面的高度差

1.输入Base Plane

2.设定希望计算高度的区域

Cog3DRangeImageHeightCalculatorTool工具中可以增加对高度分布直方图的筛选操作:

1.直方图中的Low & High Tail计算时会被忽略。

2.在结果中加上标准差的倍数。

Cog3DRangeImageHeightCalculatorTool工具中可以增加对高度的筛选操作:

1.包含某个高度范围的值。

2.将某个高度范围内的值排除。

•高度信息分布会被输出

计算结果包括:

1平均值,表面平滑时使用,误差较小

2.中值,表面粗糙或可能存在少量噪点时使用,减少干扰

3.最小值

4.最大值

5.低尾部

6.高尾部

6.Cog3DRangeImageVolumeCalculatorTool

作用:可计算范围图像中基准平面上方区域内特征的体积。返回的体积单位是即立方毫米

1.输入Base Plane

2.设定希望计算体积的区域

3.得到ROI与Base Plane形成的区域的体积

1.除了计算出的体积外,该工具还返回有关如何使用范围图像像素计算体积的诊断数据。

2.它返回PixelCounts:Region中的像素数,Care(未遮罩)像素数,可见Care像素数以及基于Region,遮罩和像素的体积计算过程中使用的最终像素数。最低高度阈值。

7.Cog3DVisionDataStitchTool

作用 :拼接工具,可将标定过的两个相机的图像拼接后输出

1.无论您选择3D范围图像还是CogVisionDataContainer,都不能将两种类型的输入混合到Cog3DVisionDataStitch工具中。

2.Cog3DVisionDataStitch工具的所有输入必须是3D范围图像或CogVisionDataContainer对象。您可以在工具的单个CogVisionDataContainer输入中嵌套任何数量的CogVisionDataContainer。

3.下图表示带有两个嵌套的CogVisionDataContainers的CogVisionDataContainer输入:

8.使用3D Viewer查看图像

使用3D查看器在三维环境中查看3D深度图像。深度图像是一个包含真实世界坐标中的高度轮廓信息的合成2D图像。


8.1 Cog3DDisplayV2

使用Cog3DDisplayV2控件可以在应用程序中可视化深度图像和3D图形。

8.2 显示范围图像

使用Cog3DRangeImageGraphic 对象包含要显示的 3D视觉数据。该对象可以存储:

8.3 显示3D图形

VisionPro 支持以下3D图形类型:

csharp 复制代码
Cog3DBoxGraphic
Cog3DCircleGraphic
Cog3DLineSegGraphic
Cog3DPointGraphic
Cog3DRectangle
GraphicCog3DSphereGraphic

与2D形状不同,VisionPro为3D形状和3D图形维护单独的类。要显示3D图形,必须创建并配置要使用的3D形状,然后将3D形状传递给适当的3D图形对象。

8.4 Cog3DDisplayV2WithGraphics3D显示状态栏

官网的示例程序,位于%VPRO_ROOT%/ samples / Programming / 3D / Cog3DDisplayV2WithGraphics / C#/ Cog3DDisplayV2WithGraphics。示例应用程序:

1.加载包含RangeWithGrey范围图像的%VPRO_ROOT%/ Images / RangeWithGrey.idb文件。

2.演示如何为范围图像创建图形包装。

3.使用预配置的CogToolBlock(ToolBlock.vpp),该工具在灰色图像数据上搜索2D数据矩阵代码,并在透明的3D边界框中显示结果。

4.说明了处理存储在Sensor2D空间中的灰度图像数据结果所需的步骤。

5.显示如何将Sensor2D空间中的(x,y)坐标转换为Sensor3D空间中的(x,y,z)坐标。

相关推荐
随意起个昵称1 小时前
Dijstra算法学习笔记
笔记·学习·算法
2301_805962932 小时前
TF卡烧录系统盘文件后损坏
笔记
dalong102 小时前
A27:图像九宫格分割程序
笔记·aardio
袁气满满~_~2 小时前
深度学习笔记四
人工智能·笔记·深度学习
乌萨奇5372 小时前
【2025考研复试】深度学习扩展知识:从ViT到多模态,以及简历项目挖掘策略(第11章复盘)
人工智能·深度学习·考研·计算机视觉·nlp·多模态
好家伙VCC2 小时前
# 发散创新:基于ARCore的实时3D物体识别与交互开发实战 在增强现实(
java·python·3d·ar·交互
马猴烧酒.3 小时前
【面试八股|Spring篇】Spring常见面试题详解笔记
笔记·spring·面试
Wils0nEdwards3 小时前
初中数学 1
笔记
格林威3 小时前
Baumer相机薄膜厚度均匀性评估:基于光学干涉条纹的 6 个核心方法,附 OpenCV+Halcon 实战代码!
人工智能·opencv·计算机视觉·视觉检测·工业相机·智能相机·堡盟相机