VisionPro建模器中的点输出 深入指南 (vision pro)

问题

  • 如何用函数导出点的坐标
  • 如何用函数把提取到的轮廓与物体同时显示

解决方案

导出点的坐标

可以使用 `CogPMAlignTool_GetAlignModelPoints()` 函数导出点的坐标。该函数返回一个 CogPMAlignModelPoints 对象,其中包含模型点的信息。可以遍历该对象以获取每个点的坐标。 ``` CogPMAlignModelPoints points = CogPMAlignTool_GetAlignModelPoints(tool); for (int i = 0; i < points->nPoints; i++) { double x = points->points[i].x; double y = points->points[i].y; } ```

显示轮廓和物体

可以使用 `CogPMAlignTool_DrawModelPoints()` 函数显示轮廓和物体。该函数在图像上绘制模型点,以便可视化轮廓。 ``` CogPMAlignTool_DrawModelPoints(tool, image); ```

示例代码

以下示例代码展示了如何识别硬币的边缘轮廓并导出点的坐标: ``` // 创建图像处理工具 CogImageTool imageTool = CogImageToolCreate("path/to/image.tif", 0); // 创建校正空间 CogCalibCheckerboardTool1 calibTool = CogCalibCheckerboardTool1Create(); CogCalibCheckerboardTool1_SetImage(calibTool, imageTool); CogCalibCheckerboardTool1_Compute(calibTool); // 创建特征工具 CogPMAlignTool1 alignTool1 = CogPMAlignTool1Create(); CogPMAlignTool1_SetImage(alignTool1, imageTool); CogPMAlignTool1_SetCheckerboard(alignTool1, calibTool); CogPMAlignTool1_SetFeatureType(alignTool1, CogPMAlignFeatureType_CogPMAlignFeatureType_Corner); CogPMAlignTool1_Compute(alignTool1); // 创建定位工具 CogFixtureNPointToNPointTool1 fixtureTool = CogFixtureNPointToNPointTool1Create(); CogFixtureNPointToNPointTool1_SetImage(fixtureTool, imageTool); CogFixtureNPointToNPointTool1_SetCheckerboard(fixtureTool, calibTool); CogFixtureNPointToNPointTool1_SetFixedPoints(fixtureTool, 4, fixedPoints); CogFixtureNPointToNPointTool1_SetMovingPoints(fixtureTool, 4, movingPoints); CogFixtureNPointToNPointTool1_Compute(fixtureTool); // 创建边缘轮廓提取工具 CogPMAlignTool alignTool2 = CogPMAlignToolCreate(); CogPMAlignTool_SetImage(alignTool2, imageTool); CogPMAlignTool_SetCheckerboard(alignTool2, calibTool); CogPMAlignTool_SetFixture(alignTool2, fixtureTool); CogPMAlignTool_SetFeatureType(alignTool2, CogPMAlignFeatureType_CogPMAlignFeatureType_Edge); CogPMAlignTool_SetModelName(alignTool2, "model"); CogPMAlignTool_Compute(alignTool2); // 导出点的坐标 CogPMAlignModelPoints points = CogPMAlignTool_GetAlignModelPoints(alignTool2, "model"); for (int i = 0; i < points->nPoints; i++) { double x = points->points[i].x; double y = points->points[i].y; } // 显示轮廓和物体 CogPMAlignTool_DrawModelPoints(alignTool2, imageTool, "model"); // 释放工具 CogPMAlignTool_Destroy(alignTool2); CogFixtureNPointToNPointTool1_Destroy(fixtureTool); CogPMAlignTool1_Destroy(alignTool1); CogCalibCheckerboardTool1_Destroy(calibTool); CogImageTool_Destroy(imageTool); ```

总结

通过使用 Cognex Vision Pro 工具,可以轻松识别硬币的边缘轮廓。通过导出点的坐标和显示轮廓,可以进行进一步的分析和处理。

本文原创来源:电气TV网,欢迎收藏本网址,收藏不迷路哦!

相关阅读

添加新评论