Halcon在设计之初就提供了完整的图像采集方案,适应了多种图像设备采集图像,以及各种不同环境的采集方案。

通常情况下,图像的采集应该是所有机器视觉项目首要解决的任务,不幸的是,需要解决图像采集的问题,对应装备的种类具有特殊性,以及非标准化的硬件设备,比如,USB相机或IEEE1394相机,他们提供的物理接口及设备驱动都完全不一样。为了让我们专注于机器视觉实际的问题,Halcon提供了大量的图像采集接口,通过这种快速接口,HALCON图像采集的代码量大为减少,只要几行代码就能解决问题。 使用halcon我们可以获取来自采集设备和摄像头在采集过程中,不同定时模式的各种配置,更重要的是,这种简单不是以牺牲采集设备的可用功能及效率为代价的。

除了从相机获取图像,也可以采集的图像存储在文件中,HALCON也可以通过存储在文件的方式来输入图像,文件的格式支持:BMP,TIFF,GIF,JPEG,PNG,PNM,PCX,XWD.

采集图像和基本步骤:

Halcon的采集图像基本包括三个步骤,从文件中读取图像更简单,只需对操作:read_image进行单一获取图像即可。采集图像的三个步骤是:

第一步:打开图像采集设备

第二步:采集图像

第三步:关闭图像采集设备

第一步:打开图像采集设备:

如果你想获得从图像采集卡或图像采集设备的图像,例如,我们使用一个IEEE1394的摄像头,第一步是连接该设备,HALCON会帮助我们解除所有与该设备实施的操作细节,我们需要做的只是调用函数open_framegrabber即可,并指定相应图像采集接口的名称。

也有一种虚拟的图像采集接口,它以文件的形式作为虚拟的图像采集接口。顾名思义,这种帧接收器读取图片来自文件,也即所谓的图像序列文件。后者是HALCON特定的文件,通常带有扩展名.seq,它们包含图像文件名,以换行分隔的列表(可以创建一个易于使用文本编辑器)。如果我们连接到这样一个序列,后续调用该文件中指定的顺序grab_image返回图像。另外,我们也可以从一个特定的目录中读取所有图像。这样不必创建一个序列文件,而只是指定的目录名。

调用grab_image返回指定的图像目录中的图像。如果你想测试文件序列的图像,以后需要切换到一个真实的物理图像采集设备,这种应用程序 的两种方法都是有效的。

第二步:获取图像

一旦连接设备成功,我们通过简单地调用grab_image获取图像。如果是从磁盘加载图像,我们可以使用read_image,从目前目录和环境变量halconImages指定的目录中搜索图像。

第三步:关闭图像采集设备

在应用程序结束时,一定要通过close_framegrabber来关闭图像采集设备的连接,以释放其内存资源,同时如果其它系统需要调用该设备,只有在关闭该设备连接,其它系统调用才能成功。

采集图像常用的函数:

1:open_framegrabber:用于打开设备,或者获取设备信息

2:set_framegrabber_param,:设置设备参数,

3:get_framegrabber_param:获取设备参数,

4:grab_image,grab_image_async,采集图像

5:read_image:读取图像

6:close_framegrabber:关闭采集设备。

无法应用halcon采集设备

除此之外,我们可能会遇到以下两种情况:

1:我们可以对外部创建的图像使用运营商采用函数gen_image1,gen_image3,gen_image1_extern或gen_image3_extern

2:不支持的图像采集设备

如果当前设备不支持halcon,也就是说HALCON图像采集接口无法支持的图像采集设备,我们也可以通过创建自己的interface来采集图像。

Halcon一日一练:图像设备介绍的更多相关文章

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

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

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

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

  3. Halcon一日一练:图像采集设备的基本参数

    因操作图像处理之前,需要对图像进行采集.采集图像,我们首先要确定的是图像的像素和采集的效率.这些都需要对设备进行配置与操作.现实情况是图像设备有各自不同的采集方式,配置也各不相同.这就需要设备提供商提 ...

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

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

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

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

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

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

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

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

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

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

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

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

随机推荐

  1. 安装完oracle11g_2x64位数据库后使用PL Developer链接oracle报错“请确认是否安装了32位oracle和TNS错误”解决方案

    解决使用PL Developer登录oracle报错没有配置TNS错误.首先安装好oracle11g数据库,安装PL developer32位 1,下载“instantclient-basic-win ...

  2. IDEA微服务项目的application.yml没有绿色叶子的解决办法

    1.今天在写微服务项目的时候成功入坑,那么问题是啥呢?接下来和我一起走入bug的世界吧,让我们看看究竟是怎么回事. *问题描述 1.application.yml是灰色的小格子 2.实在难看 *需要解 ...

  3. charles 高亮Hosts

    本文参考:charles 高亮Hosts Focus Host是焦点域名的:这里配置好的可以在结构视图中,单独拎出来显示: 如下图,在把zhubangbang.com设为焦点域名,在视图中是下图这么展 ...

  4. 《Maven实战》读书笔记

    一.Maven使用入门 POM(Project Object Model,项目对象模型),定义了项目的基本信息,用于描述项目如何构建,声明项目依赖等等 二.坐标和依赖 1.何为Maven坐标 Mave ...

  5. Spring Boot中@ConfigurationProperties注解实现原理源码解析

    0. 开源项目推荐 Pepper Metrics是我与同事开发的一个开源工具(https://github.com/zrbcool/pepper-metrics),其通过收集jedis/mybatis ...

  6. 括号匹配(c语言实现)

    ⭐ 我的网站: www.mengyingjie.com ⭐ 1要求 编写程序检查该字符串的括号是否成对出现,而且不能交叉出现. 输入: 一个字符串,里边可能包含"()"." ...

  7. 部署Tomcat 环境

    部署Tomcat 环境(mysql+tomcat+jdk) 1.下载Tomcat 软件包 2.通过xftp创建root 连接,然后将Tomcat 软件包拖拽到/opt目录下 3.在xshell 上ro ...

  8. PHPstorm出现的端口号错误问题(502)

    咔咔咔-听好 PhpStorm的默认端口是63342,但是在浏览器会提示502错误. 同时Phpstorm右下角会报错:Please ensure that configured PHP Interp ...

  9. Spring 梳理-传递模型数据到视图

    传递model,返回string,不指定返回key package com.jt; import com.myOrg.DeptUserDomain; @Controller @RequestMappi ...

  10. Spring 梳理-profile与条件化定义bean

    定义profile <beans> //root <beans profile="dev"> <bean id=.../> </beans ...