图像采集: Halcon通过imageacquisition interfaces对各种图像采集卡及各种工业相机进行支持。其中包括:模拟视频信号,数字视频信号Camera Link,数字视频信号IEEE 1394,数字视频信号USB2.0,数字视频信号Gigabit Ethernet等。
Halcon通过统一的接口封装上述不同相机的image acquisition interfaces,从而达到算子统一化。不同的相机只需更改几个参数就可变更使用。
Halcon图像获取的思路:1、打开设备,获得该设备的句柄。2、调用采集算子,获取图像。
1、打开设备,获得该设备的句柄。
open_framegrabber('DahengCAM', 1, 1, 0, 0, 0, 0, 'interlaced', 8, 'gray', -1, 'false','HV-13xx', '1', 1, -1, AcqHandle) //连接相机,并设置相关参数
Parameter Values Default Type Description
Name 'DahengCAM' string Name of the HALCON interface.
HorizontalResolution 1 1 1表示水平全部,2为水平1/2,表示图像截取。
VerticalResolution 1 1 同上,表示垂直方向。
ImageWidth <width> 0 integer 所需的图像部分的宽度('0 '代表了完整的图像)。
ImageHeight <height> 0 integer 所需的图像部分的高度(0”是完整的图像)
StartRow <width> 0 integer 所需的图像部分左上方的像素行坐标
StartColumn <column> 0 integer 所需的图像部分左上方的像素列坐标
Field 忽视
itsPerChannel 忽视
ColorSpace 'default', 'gray', 'rgb' 'gray' string HALCON图像的通道模式
Generic 忽视
ExternalTrigger 'false', 'true' 'false' string 外部触发状态 CameraType 'HV-13xx', 'HV-20xx', 'HV-30xx', 'HV-31xx','HV-50xx', 'SV-xxxx' 'HV-13xx' string 所连接的摄像机系列型。 Device '1', '2', '3', ... '1' string 相机连接第一个设备号“1”,第二个设备编号“2”。
Port 忽视
LineIn 忽视
2、调用采集算子,获取图像。
grab_image (Image, AcqHandle) //(同步采集)完后处理图像,然后再采集图像。采集图像的速率受处理速度影响。
grab_image_async (Image, AcqHandle,MaxDelay) //(异步采集),一幅画面采集完后相机马上采集下一幅画面,不受处理速度影响。其中第三个参数为:MaxDelay,表示异步采集时可以允许的最大延时,本次采集命令距上次采集命令的时间不能超出MaxDelay,超出即重新采集。
图像采集其他相关算子:
grab_image_start,该算子开始命令相机进行异步采集。只能与grab_image_async(异步采集)一起使用。
例子: * Select a suitable image acquisition interface nameAcqName
open_framegrabber(AcqName,1,1,0,0,0,0,'default',-1,'default',-1.0,\ 'default','default','default',-1,-1,AcqHandle) grab_image(Image1,AcqHandle)//进行同步采集
* Start next grab
grab_image_start(AcqHandle,-1.0)//命令相机进行异步图像采集开始
* Process Image1 ...
* Finish asynchronous grab + start next grab
grab_image_async(Image2,AcqHandle,-1.0)//读取异步采集的图像
* Process Image2 ...
close_framegrabber(AcqHandle)
3、相机参数读写 读取相机参数:
info_framegrabber( : : Name, Query : Information, ValueList) 写相机参数:
set_framegrabber_param( : : AcqHandle, Param, Value : )