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. CCPC桂林

    在得知我们队伍前往桂林参加CPPC区域赛后,我是非常激动的,因为我们网络赛并没有得到名额,如果不是新都赠予我们名额,我们都没有出去打比赛的机会,同时,我们也不想浪费这个名额,我们也想打出成绩来,于是我 ...

  2. F#周报2019年第38期

    新闻 宣告.NET Core 3.0第一个候选版本 .NET Core 3.0第一个候选版本中ASP.NET Core与Blazor的更新 F#的就业市场情形如何 Finalization实现细节 G ...

  3. ogeek线下赛web分析1-python-web

    1.python from flask import Flask, request, render_template,send_from_directory, make_response from A ...

  4. Day 25 网络基础2

    ip地址划分 ip地址由32位二进制组成. 什么是二进制?0101 10进制 0-9 10 2进制 0-1 10 二进制1100 ==1X2^3+1X2^2+0X2^1+0X2^0 =12 十进制15 ...

  5. 【C/C++】qsort函数的使用方法和细节

    函数概述 qsort 为quick_sort的简写,意为快速排序,主要用于对各种数组的排序. 因为数组的元素可能是任何类型的,甚至是结构或者联合,所以必须高数函数qsort如何确定两个数组元素哪一个& ...

  6. [VB.NET Tips]为VB.NET正名

    前言 我于2005年毕业,正值全国上上下下如火如荼的开展企业信息化的时代,正是大规模软件开发的年代. 那时.NET 已经发布了2.0,但是仍是VB6,Delphi,PowerBuilder的天下,是E ...

  7. Vue学习之不同组件之间的消息传递

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  8. 【Python笔记】Python 基础语法

    Python 标识符 在 Python 里,标识符由字母.数字.下划线组成. 在 Python 中,所有标识符可以包括英文.数字以及下划线(_),但不能以数字开头. Python 中的标识符是区分大小 ...

  9. 基于操作系统原理的Linux 的基本操作和常用命令的使用

    一.实验目的 1.学会不同Linux用户登录的方法. 2.掌握常用Linux命令的使用方法. 3.了解Linux命令中参数选项的用法和作用. 二.实验内容 1. 文件操作命令 (1) 查看文件与目录 ...

  10. HashMap和Hashtable的联系和区别

    实现原理相同,功能相同,底层都是哈希表结构,查询速度快,在很多情况下可以互用,早期的版本一般都是安全的. HashMap和Hashtable都实现了Map接口,但决定用哪一个之前先要弄清楚它们之间的分 ...