• 机器视觉——找到物块中心点


    首先先介绍一下我用的是HALCON中的HDevelop软件。

    大家下载好软件后可以测试一下:

    在程序编辑器窗口中输入下面指令:

    read_image(Image,'monkey')

    那么如果出现这样的图片,说明是没有问题的

    那么本次编程采用的是下面这张图片

    我们要达到的效果是这样的

    其实代码很简单,我不过多说明

    1. *读图
    2. *以相对路径方式
    3. *这里的代码叫算子
    4. read_image(Image,'./img/1')
    5. *通道分解 将多通道原图分解成RGB单通道灰度图像
    6. *灰度值范围:0-255 灰度值越大,像素点越亮;反之,则越暗
    7. decompose3(Image,R,G,B)
    8. *阈值分割 阈值:灰度值区间【44, 255
    9. *对R通道图像上的所有像素点灰度值进行判断
    10. *只要灰度值区间在【44, 255】内的像素点,就会被激活区域
    11. *最终所有找出来的区域,都被放在区域Regions
    12. *操作对象:图像R(有像素点)-》Regions(无像素点)
    13. *颜色不是区域的特征
    14. threshold (R, Regions, 44, 255)
    15. *上一步由阈值分割得到的区域,其连通性为一个整体
    16. *连通域打散(破坏连通性)
    17. connection(Regions,ConnectedRegions)
    18. *特征筛选(利用面积特征对ConnectedRegions进行筛选得到目标区域)
    19. *目标区域也称感兴趣区域(ROI)
    20. *ROI:Region of interesting
    21. select_shape(ConnectedRegions,SelectedRegions,\
    22. 'area','and',170000,180000)
    23. *填充ROI上的孔洞
    24. fill_up(SelectedRegions,RegionFillUp)
    25. *获取填充后的目标区域的中心点行列坐标
    26. area_center(RegionFillUp,Area,Row,Column)
    27. *利用上一步获得的行列坐标值,绘制中心十字(亚像素轮廓)
    28. *中心十字80:像素值 Π/4=0.785398,旋转45
    29. gen_cross_contour_xld(Cross,Row,Column,80,0)
    30. **可视化**
    31. *清空窗口
    32. dev_clear_window()
    33. *展示原图
    34. dev_display(Image)
    35. *对区域以及亚像素轮廓进行显示的预设值
    36. *1、设置显示的颜色
    37. dev_set_color('green')
    38. *2、设置线宽
    39. dev_set_line_width(5)
    40. *3、设置区域显示为“仅轮廓”显示
    41. dev_set_draw('margin')
    42. *展示亚像素轮廓(中心十字)
    43. dev_display(Cross)
    44. *展示目标区域
    45. dev_display(RegionFillUp)
    46. *设置字体
    47. *3600:窗口句柄
    48. set_display_font(3600, 16, '楷体', 'true', 'false')
    49. *展示文字信息
    50. *disp_message(3600, '中心点坐标:('+Row+','+Column+')',\
    51. 'image', 0, 0, 'red', 'true')
    52. disp_message(3600, '中心点坐标:('+Row+','+Column+')',\
    53. 'image', Row, Column, 'red', 'true')
  • 相关阅读:
    C++ push_back()和back() 、pop()、push()、emplace() 和 emplace_back()
    如何使用Net2FTP搭建免费web文件管理器打造个人网盘
    前后端分类 (增加,查询)
    力扣每日一题-第27天-561.数组拆分Ⅰ
    深度解析Kafka中的消息奥秘
    基于MybatisPlus代码生成器(2.0新版本)
    数据结构 每日一练 :选择 + 编程
    【Vue 开发实战】基础篇 # 6:双向绑定和单向数据流不冲突
    Spring Boot 内置工具类 ObjectUtils
    LIO-SAM:点云预处理前端---畸变矫正数据预处理
  • 原文地址:https://blog.csdn.net/DongShanYuXiao/article/details/139455287