文档详情

halcon学习笔记机器视觉工程应用的开发思路.doc

发布:2017-04-20约3.21千字共8页下载文档
文本预览下载声明
机器视觉工程应用主要可划分为硬件和软件两大部分。 硬件:工程应用的第一步就是硬件选型。硬件选型很关键,因为它是你后面工作的基础。主要是光源、工业相机和镜头选择。 软件:目前业内商业库主要有Halcon,康耐视,DALSA,evision,NI等,开源库有OpenCV.其中NI的labview+vision模块。 机器视觉工程应用的基本开发思路是: 一、图像采集,二、图像分割,三、形态学处理,四、特征提取,五、输出结果。 下面在Halcon下对这四个步骤进行讲解。 一、图像采集: 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)?//连接相机,并设置相关参数 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?: ) ? 二、图像分割: 图像分割的定义: 所谓图像分割是指将图像中具有特殊含义的不同区域分割开来,这些区域是互相不交叉的,每个区域都满足特定区域的一致性。 1、基于阈值的图像分割 threshold —采用全局阈值分割图像。 格式:????threshold(Image : Region : MinGray, MaxGray : ) 自动全局阈值分割的方法: (1)计算灰度直方图 (2)寻找出现频率最多的灰度值(最大值) (3)在threshold中使用与最大值有一定距离的值作为阈值 代码: gray_histo(Regions, Image,AbsoluteHisto, RelativeHisto)?//计算出图像区域内的绝对和相对灰度值直方图。 PeakGray := sort_index(AbsoluteHisto)[255]?//求出出现频率最多的灰度值 threshold(Image,Region,0,PeakGray-25) bin_threshold — 使用一个自动确
显示全部
相似文档