c#-Halcon入门教程——标定

打印 上一主题 下一主题

主题 1721|帖子 1721|积分 5163

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?立即注册

x
 Halcon代码
  1. read_image (NinePointCalibration, 'D:/Desktop/halcon/ca74d-main/九点标定/NinePointCalibration.gif')
  2. rgb1_to_gray (NinePointCalibration, GrayImage)
  3. get_image_size (GrayImage, Width, Height)
  4. dev_display (GrayImage)
  5. * 获取当前显示的窗口句柄
  6. dev_get_window (WindowHandle)
  7. * 设置显示窗口的显示区域为整个图像大小
  8. * 参数:窗口左上角x坐标,窗口左上角y坐标,窗口高度,窗口宽度
  9. dev_set_part (0, 0, Height, Width)
  10. threshold (GrayImage, Regions, 0, 142)
  11. * 填充二值图像中的空洞(输入区域,输出填充后的区域)
  12. fill_up (Regions, RegionFillUp)
  13. * 开运算
  14. opening_circle (RegionFillUp, RegionOpening, 3.5)
  15. * 连接相邻的区域
  16. connection (RegionOpening, ConnectedRegions)
  17. * 根据形状特征(这里是面积)选择区域
  18. select_shape (ConnectedRegions, SelectedRegions, 'area', 'and', 2259.62, 5000)
  19. *对选择的区域按某一特征排序
  20. * 参数:输入区域,输出排序后的区域,排序特征('character'表示字符特征,这里按区域中心点排序),排序方向('true'表示升序),排序的参考方向(这里是按行排序)
  21. sort_region (SelectedRegions, SortedRegions, 'character', 'true', 'row')
  22. * 在排序后的区域中找到最小的外接圆
  23. * 参数:输入区域,输出圆心的行坐标,输出圆心的列坐标,输出圆的半径
  24. smallest_circle (SortedRegions, Row, Column, Radius)
  25. * 生成一个十字标记,用于标记找到的圆心位置
  26. * 参数:输出十字标记,十字中心点的行坐标,十字中心点的列坐标,十字标记的长度,十字标记的倾斜角度(0.785398弧度约等于45度)
  27. gen_cross_contour_xld (Cross, Row, Column, 50, 0.785398)
  28. * 显示原始灰度图像
  29. dev_display (GrayImage)
  30. * 显示生成的十字标记
  31. dev_display (Cross)
复制代码

  • 图像读取:起首,我们使用read_image函数读取存储在指定路径的图像文件。这个函数将图像加载到内存中,以便后续处理。
  • 灰度转换:由于许多图像处理算法在灰度图像上效果更好,我们使用rgb1_to_gray将RGB图像转换为灰度图像。
  • 图像尺寸获取:使用get_image_size获取图像的宽度和高度,这对于后续设置显示窗口和盘算等很有用。
  • 显示图像:dev_display用于在HALCON的图形窗口中显示图像。
  • 设置显示区域:dev_set_part用于设置显示窗口的显示范围,这里设置为整个图像的巨细。
  • 阈值分割:threshold函数将灰度图像转换为二值图像,通过设定一个阈值来区分前景和背景。
  • 空洞添补:fill_up函数用于添补二值图像中的空洞,使前景区域更完整。
  • 形态学开运算:opening_circle使用圆形布局元素对图像举行形态学开运算,可以去除小的噪声点。
  • 区域连接:connection函数将相邻的前景区域连接起来。
  • 外形选择:select_shape根据指定的外形特性(这里是面积)选择满足条件的区域。
  • 区域排序:sort_region根据指定的特性对区域举行排序。
  • 最小外接圆:smallest_circle在排序后的区域中找到最小的外接圆,这里我们假设这是我们要标志的目标圆形区域。
  • 生成十字标志:gen_cross_contour_xld生成一个十字标志,用于标志找到的圆心位置。
  • 显示标志:最后,使用dev_display显示原始图像和生成的十字标志。

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
回复

举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

曂沅仴駦

论坛元老
这个人很懒什么都没写!
快速回复 返回顶部 返回列表