文章目录
- 前言
- 1.Cog3DPlanePlaneAngleScript
- 2.Cog3DRangeGreySplitterScript
-
- [2.1 Coglmage16Range](#2.1 Coglmage16Range)
- [2.2 CogVisionDataContainer](#2.2 CogVisionDataContainer)
- 3.Cog3DRangeImageCrossSectionTool
-
- [3.1 生成3D图像的横截面](#3.1 生成3D图像的横截面)
- 4.Cog3DRangeImagePlaneEstimatorTool工具
-
- [4.1 Area模式](#4.1 Area模式)
- [4.2 Point模式](#4.2 Point模式)
- [4.3 设置选项卡](#4.3 设置选项卡)
- [4.4 结果选项卡](#4.4 结果选项卡)
- 5.Cog3DRangeImageHeightCalculatorTool
- 6.Cog3DRangeImageVolumeCalculatorTool
- 7.Cog3DVisionDataStitchTool
- [8.使用3D Viewer查看图像](#8.使用3D Viewer查看图像)
-
- [8.1 Cog3DDisplayV2](#8.1 Cog3DDisplayV2)
- [8.2 显示范围图像](#8.2 显示范围图像)
- [8.3 显示3D图形](#8.3 显示3D图形)
- [8.4 Cog3DDisplayV2WithGraphics3D显示状态栏](#8.4 Cog3DDisplayV2WithGraphics3D显示状态栏)
前言

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)坐标。
