2024年5月1日发(作者:)

Halcon里使用工业相机的方法总结

Halcon的开发者,在入门时,往往对访问相机比较头痛,方法是很多的,但是选择

哪一种接口最方便、最有效呢? 这里,给大家介绍几种常规的方法以及每种方法的利弊。

1. 使用Directshow接口。在采集助手里,选择Directshow,如下图所示:

该方法对应的halcon初始化代码为

open_framegrabber ('DirectShow', 1, 1, 0, 0, 0, 0, 'default', 8, 'rgb', -1, 'false',

'default', 'XXXXXXX', 0, -1, AcqHandle),XXXXXXX为相机名字,需要替换成电脑中相

应的相机名称。

优点:该方法通用性较好,几乎市面上所有厂家的工业相机以及民用级别的QQ视频

摄像头、WebCam等都可以通过这种方式访问。

缺点:性能较低,Directshow中由于内存复制、格式转换等原因,CPU占用率会相

对其他方式高一些;灵活性差,由于是标准接口,早期定义的,很多工业相机的参数没有

办法通过这种方式修改。例如触发模式设置等,通过该接口就无法完成。

2. 使用GigEVision接口。在采集助手里,选择GigEVision,如下图所示:

该方法对应的halcon初始化代码为

open_framegrabber ('GigEVision', 0, 0, 0, 0, 0, 0, 'progressive', -1, 'default', -1,

'false', 'default', 'XXXXXXX', 0, -1, AcqHandle) ,XXXXXXX为相机名字,需要替换成

电脑中相应的相机名称。

优点:通用性较好,大部分GigE网口工业相机都支持该方式直接方式。GigEVision

是美国AIA组织定义的一种专门用于网口工业相机通信的协议,只要支持该协议的相机,

Halcon就可以用其自带的驱动直接访问;功能可控性比较好,该方法可以访问工业相机的

一些特殊参数,触发模式等都可以进行设置。

缺点:无法支持USB接口的工业相机;由于每个厂家对GigEVision支持的程度不一

样,提供的相机XML描述文件也不一样,所以在参数配置上,每个厂家的相机配置方法不

一样,代码不能复用。

3. 使用厂家提供的专用接口。例如北京大恒、深圳迈德威视等国产厂家,都根据Halcon

提供了专门的接口组件。以迈德威视的工业相机为例,在采集助手里,选择MindVision,

如下图所示:

该方式halcon中初始化代码为

open_framegrabber ('MindVision', 1, 1, 0, 0, 0, 0, 'progressive', 8, 'Gray', -1,

'false', 'auto', 'Camera MV-G1400BTI', 0, -1, AcqHandle),Camera MV-G1400BTI为

相机名字,每个型号会有差异。

优点:专用接口,灵活性好,在Hdevelop里可以实时取图并用算法进行验证。开放

的参数设置接口多,可以在halcon中通过专用接口调节曝光、增益、色彩、帧率、色温、

触发模式、锐化、旋转、Bayer算法切换等多种参数,同时厂家专用接口一般会针对自己

的相机进行优化,性能上也会比较好。

缺点:无法支持其他厂家的工业相机,不用厂家的相机,需要修改代码。

4. 使用Halcon的内部API结合相机厂家的SDK包进行图像数据类型转换后,再调用

Halcon的视觉库进行其他处理。

优点:可以兼容任何类型的摄像头,即使您手头的摄像头不支持Directshow接口,

也没有提供专用的Halcon组件,但是只要有SDK开发包可以取图,就可以使用这种方式

集成开发。

缺点:不方便在Hdevelop里调试代码;移植工作量大,代码繁琐,需要对相机的SDK

接口和Halcon的转换接口都非常熟悉。

从以上的分析可以看出,能够直接使用采集助手结合厂家提供的专用接口的方式是最

方便和高效的。深圳迈德威视,为您提供高性价比的国产工业相机,并且无缝兼容Halcon

开发。