在上一篇文章中我们提到,图机器视觉的第一步就是采集图像 。那么本文来讲解一下相机采集图像的详细过程。
在HDevelop上我们可以通过图像采集助手很简单的配置我们在halcon中的图像采集程序。
1、在助手菜单中选择图像采集助手。
在助手菜单选择图像采集助手
2、在采集助手上点击自动检测接口,我们就能够很快捷的找到我们相机或者采集卡支持的接口。
点击自动检测接口
3、在连接处选择我们的相机,我这里使用的是笔记本电脑自带的相机做案例
4、点击连接、采集、实时,测试图像是否能够连接。
采集效果
5、生成代码
点击生成代码,HDevelop会自动生成我们需要的halcon代码,不再需要我们自己手动的编写采集图像的代码,这个是比较方便我们写生成的。
这就是我们生成代码的运行效果,跟刚刚在助手上面的效果是一模一样的。这样一个图像的采集程序就算完成了。这是在halcon上编写的相机采集程序。那我们要怎么将它放置在labview上呢?
---------------------------------分割线---------------------------------------------------------------------------------------------
因为笔者比较熟悉labview编程,所以我以后的程序也只能使用labview来给大家演示,等我上面时候学会C#或者Python的时候,我再跟大家分享。
在前面的笔记我说到,labview调用halcon程序有两种方式,接下来我也会用两种方法给大家演示一下在labview中调用halcon采集图像。
一、通过HDevengin来执行halcon程序
这就是之前说的程序,在此也能够直接使用,通过输入halcon程序的文件路径,执行halcon的程序。
以下是执行效果
labview前面板
上图就是我们通过调用halcon上面的程序的执行效果,可以发现这个是最简单的方式,我们也能够非常快速的开发这个程序。
二、通过调用halcon的算子来执行。
这个就非常复杂了,我们要根据查找帮助文档,找到我们halcon算子的静态类。
我们再看一下我们的halcon程序都用到哪些算子。
halcon使用的算子
这里用到四个算子,我们通过查找帮助文档,一个一个找到他们的静态类。
Open_Framegrabber算子
grab_imagestart算子
grab_imageasync算子
很明显我们都发现,这三个算子都在HOperatorSet这个静态类下。所以我们直接在labview上构造这个静态类,然后调用它的方法就能够执行相应的算子。
HOperatorSet
如果对labview怎么找到这个类还有疑问的朋友可以看看我之前的文章,我之前的文章有详细说明要怎么查找一个halcon的方法
labview按照halcon的程序编写的程
halcon读取相机的算子
这里函数输出的Image 是属于HObject类,而不是HImage类
所以要通过HImage的构造方法HImage(HObject obj)
这个方法转换为HImage才能连接上HWindow的参数,
要不然是labview是会报错的
以上就是labview根据找到对应的算子,执行的程序。