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

20 篇文章 20 订阅

文章专栏

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)

在这里插入图片描述

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值