图像采集: 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 | | | | 忽视 | BitsPerChannel | | | | 忽视 | 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 : ) |