机器视觉之二:初识halcon,感受halcon的强大

halcon采样与简单的处理

资源准备

1、安装halcon

2、摄像机设备,如果笔记本自带camera也可以。或者从视频文件中获取视频进行处理也可以

采样代码生成

打开“助手”——“打开新的ImageAcquisition”

编辑代码

* Image Acquisition 01: Code generated by Image Acquisition 01

* 打开图像采集接口

open_framegrabber ('DirectShow', 1, 1, 0, 0, 0, 0, 'default', 8, 'rgb', -1, 'false', 'default', '[0] Microsoft® LifeCam HD-5000', 0, -1, AcqHandle)

grab_image_start (AcqHandle, -1)

* 获取第一帧图像,主要是为了获取图像的大小

grab_image (ImageBase, AcqHandle)

* 获取图像的大小

get_image_size(ImageBase,Width,Height)

* 创建新的显示窗口

dev_open_window(0,0,Width/2, Height/2, 'black',WindowHandle)

* 采样循环

while (true)

* 获取图像

grab_image (Image, AcqHandle)

* 显示采样的图像

dev_display(Image)

*将图像转换为单通道的灰度图像

rgb1_to_gray(Image, GrayImage)

dev_display(GrayImage)

* 使用阈值处理,获取较暗部分

threshold(GrayImage, DarkArea, 0, 80)

* 填充区域

fill_up(DarkArea, RegionFillUp)

* 将不相连的区域整体分割成独立的区域

connection(RegionFillUp, ConnectedRegions)

* 排除杂点,选择面积较大的区域

select_shape(ConnectedRegions, SelectedRegions, 'area','and',150, 9999)

* 目标计数

count_obj(SelectedRegions, Number)

* 设置文字颜色

dev_set_color('black')

* 设置文字的显示位置

set_tposition(WindowHandle, 50,50)

* 窗口输出文字

write_string(WindowHandle, Number)

*设置联通区域的颜色为红色,这里跟上面的文字颜色是什么区别?是怎么知道要设置连通域的呢?

dev_set_color('red')

* 显示模式为填充

dev_set_draw('fill')

//dev_display(DarkArea)

* Image Acquisition 01: Do something

endwhile

close_framegrabber (AcqHandle)

结果

总结

  1. halcon具备丰富的算子和函数接口
  2. 图像变量窗口:在图像处理过程中,我们希望看到图像的变化过程,halcon提供了图像变量窗口,在这个窗口下可以一目了然的看到图像在处理过程中的演化过程,能够帮助我们快速定位处理过程中的问题,非常好用的一个功能

参考书籍

《机器视觉算法原理与编程实战》

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值