当前位置: 首页 > news >正文

Halcon WPF 开发学习笔记(1):Hello World小程序

文章目录

  • 文章专栏
  • 视频链接
  • Hello World
    • 训练图片
      • 训练目的
  • 开始训练
    • 图像预处理
      • 导入图像
      • 三通道处理
        • 调用算子
        • 通道选取
      • 滤波
        • 什么是好的滤波
      • 增加对比度
    • 区域选取
      • 阈值处理
        • 算子参数选择
        • 运行结果(红色为选择区域)
      • 区域分割
        • 运行结果
      • 特征筛选
      • 参数代码
      • 第二次,面积筛选
    • 画选中十字线
  • 运行结果

文章专栏

Halcon开发

视频链接

机器视觉之C#联合Halcon 第一个Halcon小程序

Hello World

训练图片

在这里插入图片描述

训练目的

找到右下角的圆心,并且使用十字叉进行标注

开始训练

图像预处理

导入图像

在这里插入图片描述
在这里插入图片描述

三通道处理

在这里插入图片描述
我们一般会将图像分为三通道图像,选择对比最强烈的作为图像处理的图片。

调用算子

在这里插入图片描述
算子简单来说就是调用函数库的方法。

*图像三通道处理
decompose3 (KO5NHB29v5Qbj95u, Image_r, Image_g, Image_b)

在这里插入图片描述

在这里插入图片描述

通道选取

通道选取的逻辑是选择对比度最高的通道。我们这里选择三通道。如何选取我感觉比较玄学
在这里插入图片描述

滤波

滤波就是用来过度杂项信息的。滤波别人都给我们写好了,我们的目标是右下角的圆形图案,所以是圆形滤波。


*进行圆形滤波
median_image (Image_b, ImageMedian, 'circle', 5, 'mirrored')
什么是好的滤波

将不需要的细节去掉,需要的细节保留的滤波就是我们需要的滤波
在这里插入图片描述

在这里插入图片描述
图2就比图1好,因为图2没有线条,而且对比度强。黑色是板子,白色是圆点。

增加对比度

*增强对比度,为什么是1.8?都是试出来的,都是玄学
scale_image (ImageMedian, ImageScaled, 1.8, 0)

在这里插入图片描述

区域选取

阈值处理

*阈值分割
binary_threshold (ImageScaled, Region, 'max_separability', 'dark', UsedThreshold)
算子参数选择

在这里插入图片描述
在这里插入图片描述

运行结果(红色为选择区域)

在这里插入图片描述

记得每一步都要保存,我就是没保存然后突然闪退了

区域分割

由于红色的区域还是太多了,这里还要继续分割

*区域分割
connection (Region, ConnectedRegions)
运行结果

在这里插入图片描述
选择封闭连通平面,有点想世界地图的四色猜想一样,将红色部分进行分割

特征筛选

我们已经很解决目标了,只要将彩色部分进行筛选即可

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

参数代码

*特征筛选
select_shape (ConnectedRegions, SelectedRegions, 'circularity', 'and', 0.95841, 1)

在这里插入图片描述
在这里插入图片描述
不清楚需要点击左上角Clean是特性还是Bug

在这里插入图片描述

第二次,面积筛选

过程不再描述

*面积筛选
select_shape (SelectedRegions, SelectedRegions1, 'area', 'and', 159.52, 172.83)

在这里插入图片描述

画选中十字线

剩下代码没有难点,不再解析

*-----画选取十字线-----*中心坐标
area_center (SelectedRegions1, Area, Row, Column)*新窗口打开
dev_open_window_fit_image (ImageScaled, 0, 0, -1, -1, WindowHandle)*重新添加原始图片 
dev_display (CirclImg)
*添加十字坐标
disp_cross (WindowHandle, Row, Column, 20, 0)

运行结果

*---------------图像预处理---------
*导入图片
read_image (CirclImg, 'D:/train/Halcon训练图片/K(@O5{N($H$B29V5`QBJ95U.png')*图像三通道处理
decompose3 (CirclImg, Image_r, Image_g, Image_b)*进行圆形滤波
median_image (Image_b, ImageMedian, 'circle', 5, 'mirrored')*图像锐化
scale_image (ImageMedian, ImageScaled, 1.8, 0)*-------图像选取--------
*阈值处理
binary_threshold (ImageScaled, Region, 'smooth_histo', 'light', UsedThreshold)*区域分割
connection (Region, ConnectedRegions)*---特征筛选----*圆度筛选
select_shape (ConnectedRegions, SelectedRegions, 'circularity', 'and', 0.95841, 1)*面积筛选
select_shape (SelectedRegions, SelectedRegions1, 'area', 'and', 159.52, 172.83)*-----画选取十字线-----*中心坐标
area_center (SelectedRegions1, Area, Row, Column)*新窗口打开
dev_open_window_fit_image (ImageScaled, 0, 0, -1, -1, WindowHandle)*重新添加原始图片 
dev_display (CirclImg)
*添加十字坐标
disp_cross (WindowHandle, Row, Column, 20, 0)

在这里插入图片描述

http://www.lryc.cn/news/220260.html

相关文章:

  • pix2tex - LaTeX OCR 安装使用记录
  • 前端框架Vue学习 ——(四)Axios
  • 将json数据导入到ES集群——解决方案对比填坑日记
  • C语言----------#pragma预处理分析
  • 数据库中的时间django转换成None
  • 八种流行的网络协议
  • Qwt QwtKnob绘制旋钮
  • docker部署elk
  • 护网蓝队初级面试题摘录(下)
  • 通过51单片机控制SG90舵机按角度正反转转动
  • uniapp写一个计算器用于记账(微信小程序,APP)
  • 前端的几种网络请求方式
  • Kubernetes技术与架构-存储 4
  • jbase编译与部署的优化
  • Filter 和 Listener
  • 【正则表达式】中的“\b“
  • FPGA高端项目:图像采集+GTP+UDP架构,高速接口以太网视频传输,提供2套工程源码加QT上位机源码和技术支持
  • 数据库系统原理与实践 笔记 #7
  • 【CesiumJS】(1)Hello world
  • Docker 学习路线 5:在 Docker 中实现数据持久化
  • linux下使用vscode对C++项目进行编译
  • LangChain+LLM实战---ChatGPT的即时插件套件制作
  • 包装印刷行业万界星空科技云MES解决方案
  • Python教程---计算机语言简介
  • rhcsa-文件内容显示
  • 宠物养成猫狗商城门店问诊档案流量主小程序开发
  • 应用安全四十二:SSO安全
  • 【行云流水线实践】基于“OneBuild”方法对镜像进行快速装箱 | 京东云技术团队
  • 软件开发必备神器!一文读懂10款热门看板工具推荐!
  • 怎样提取视频提取的人声或伴奏?