因操作图像处理之前,需要对图像进行采集。采集图像,我们首先要确定的是图像的像素和采集的效率。这些都需要对设备进行配置与操作。现实情况是图像设备有各自不同的采集方式,配置也各不相同。这就需要设备提供商提供对应的开发工具包。这些工具包可能会遵循一定的标准。因此,在halcon中应用采集设备,可能需要按照指定的要注重写应用程序。

Halcon提供了超过百种设备的动态库,这些动态库文件对应于windows系统为DLL库文件及Uinx系统为Shared Libraries共享库文件,其图像采集接口覆盖了常用的相机接口,比如:CameraLink,gige,1394,U3等等。Halcon的图像采集接口桥接各个图像采集设备和对应的动态(共享)库,完全独立于使用的图像采集装置,计算机平台和编程语言。换言之,他们满足在同一操作平台下的不同封装,其对应的特点为以下两点:

1:提供标准化接口

2:封装在特定的图像采集设备以及帧接收器,与由设备制造商提供的SDK相互作用。

因此,当我们决定要切换到不同的采集设备,我们所需要的做的是在使用是调用Halcon操作函数并且设置不同的参数值提供相应的驱动程序和SDK,其他的则保持不变。

图像采集的基本任务由两个HALCON函数完成:

1:open_framegrabber:连接图像采集设备并设置常规参数(如端口类型及名称,型号等)

2:grab_image或grab_image_async:抓取图像

如果需要图像采集设备提供附加的功能,例如,修改图像信号模式,或者数字输出频率等,可以通过set_framegrabber_param函数来进行修改,需要注意的是,对应一些图像采集设备,并不是所有的功能都能够正常使用。

Halcon如何连接到设备

有以下几种做法:

1:打开与配置图像采集设备并连接

open_framegrabber 函数帮助我们打开指定的图像设备,通常在连接图像过程中,我们需要对四个参数进行详细的描述:

首先:需要选择正确的采集接口,该参数实际上是指定图像设备对应的接头(Port),该参数是一个字符串的描述形式,当然我们也可以将其设置为数字(字符串形式)。

通常情况下,可以将采集设备连接到图像采集卡不同端口,其数量可以根据端口的数量来选择,通过选择的端口来指定,参数cameraType介绍所连接的相机,对于模拟摄像机,这个参数通常指定使用的信号规范,例如,“NTSC”。对于工业相机,这个参数通常指定型号的相机;更复杂的采集接口,使用这个参数来选择对应相机的配置文件。

open_framegrabber函数对应结果是返回一个设备句柄AcqHandle,我们需要通过这个句柄来打开连接,需要注意的是,如果你使用Halcon的COM或者C++接口函数,并通过相应的类调用操作,例如:HFramegrabber在C++中或者C#中,没有返回的句柄,因为类本身的实例作为返回的句柄。

在实际操作中,可以通过Halcon的采集助手联接到采集设备。只要调节部分参数即可。

Halcon一日一练:图像采集设备的基本参数的更多相关文章

  1. Halcon一日一练:读取文件目录图像的三种方法

    第一种方法: 读了一个单一图像: read_image(Image,'fabrik') 这种方式可以快速的读取软件自身携带的库图像文件,系统设定了库图像映像文件的快速读取方式,我们也可以通过绝对地址的 ...

  2. Halcon一日一练:图像分辨率与像素

    1.图像像素: 像素是指由图像的小方格即所谓的像素(pixel)组成的,这些小方块都有一个明确的位置和被分配的色彩数值,而这些一小方格的颜色和位置就决定该图像所呈现出来的样子.像素是构成图像的基本单元 ...

  3. Halcon一日一练:图像设备介绍

    Halcon在设计之初就提供了完整的图像采集方案,适应了多种图像设备采集图像,以及各种不同环境的采集方案. 通常情况下,图像的采集应该是所有机器视觉项目首要解决的任务,不幸的是,需要解决图像采集的问题 ...

  4. Halcon一日一练:创建三通道图像

    首先理解一个什么是三通道图像: 三通道图像就是彩色图像,我们之前黑白相机或黑白电视机都是彩用的灰阶图像,即单通道图像,一般是2的8次方个灰阶,即256个灰阶.彩色图像采用RGB,红绿蓝三个通道来合成彩 ...

  5. Halcon一日一练:图像、变量实时更新

    某些场合,我们需要刷新图像来识别图像处理过程的差异性,便于调试判断问题和预测.Halcon提供了图像刷新操作,这些操作不会改变程序的最终处理结果. 例程: **实时刷新图像 dev_update_wi ...

  6. Halcon一日一练:CAD类型的相关操作

    大很多场合,需要在视觉程序中导入CAD文档,比如,在3C行业,需要对手机外壳进行CNC加工,或者点胶操作,此时,需要获取产品的各个点的数据.如果将CAD直接导入,就会大的减少编程工作量,同时也能达到很 ...

  7. Halcon一日一练:图像拼接技术2:步骤与例程

    上一篇主要介绍了图像拼接的一些原理和方法,这一篇将主要介绍步骤和例程: 接上一篇: 基于特征的接拼方法,分为四个步骤 1.特征检测:从图像中检测出显著且独特的图像特征,诸如:闭合区域,直线段,边缘,轮 ...

  8. Halcon一日一练:获取程序运行时间

    很多时候,我们需要知道每个函数的运算周期,以提高程序的运行效率.知道运行时间对于图像算法处理很重要 Halcon提供相关的算子,我们先来看代码: **获取图像处理时间 read_image(Image ...

  9. Halcon一日一练:图像分割之阈值分割1

    先了解什么是阈值,度娘告诉我的是:一个领域或一个系统的界限称为阈,其数值称为阈值.在图像中,我们把图像看成一个由像素灰度值组成的数集,那么阈,就是这个图像中,根据目标与背景灰度值的差异,选取的一个合适 ...

随机推荐

  1. linux 堆栈查看

    top -c 查看进程ID pstree PID 查看线程树 pstack PID 查看堆栈

  2. Python 2.X和3.X主要区别和下载安装

    一.python 2.X和3.X的区别 https://wenda.so.com/q/1459639143721779?src=140 二.Python的下载安装 1.Python下载 在python ...

  3. SpringBoot整合Nacos注册中心

    #### 什么是Nacos Nacos 是阿里巴巴的开源的项目,Nacos致力于帮助您发现.配置和管理微服务.Nacos提供了一组简单易用的特性集,帮助您快速实现动态服务发现.服务配置.服务元数据及流 ...

  4. 【linux】【maven】maven及maven私服安装

    前言 系统环境:Centos7.jdk1.8 私服是一种特殊的远程仓库,它是架设在局域网内的仓库服务,私服代理广域网上的远程仓库,供局域网内的用户使用.当Maven需要下载构件的时候,它从私服请求,如 ...

  5. Spring boot缓存初体验

    spring boot缓存初体验 1.项目搭建 使用MySQL作为数据库,spring boot集成mybatis来操作数据库,所以在使用springboot的cache组件时,需要先搭建一个简单的s ...

  6. jenkins自动化部署项目4 -- 安装和配置jdk、maven、git

    Jenkins提供了自动安装jdk,maven,git的功能,在[系统设置-全局工具配置]里,但是我自动安装没反应,因此我是先手工安装和配置它们的环境变量然后再在[系统设置-全局工具配置]里配置: 1 ...

  7. 【翻译】Docker Compose 与Docker Stack的不同

    翻译原文 Docker引擎在1.12 版本集成了Docker Swarm,  带来了一些新工具. 现在可以无需安装 Docker Compose, 就可以利用docker-compose.yml 文件 ...

  8. UploadFile

    import org.apache.hadoop.conf.*; import org.apache.hadoop.fs.*; import java.io.IOException; import j ...

  9. 读取unicode日志文件并清除记录的垃圾文件

    //读取unicode文件,并清除记录的垃圾文件 //参数1:日志文件路径 bool ReadFilePath(const wchar_t *DataFilePath) { wchar_t ChBuf ...

  10. 报表统计——java实现查询某年某月每天数据,没数据补0

    一般图表绘制例如echarts等,返回数据格式都大同小异.重点是利用sql或者java实现数据格式的转型,接下来是关键部分: 1.前提:提供的工具方法——获取某月有多少天 //通过年份和月份确定该月的 ...