文章目录

  • 1、HALCON 图像采集
    • 1.1 基本概念
      • 1.1.1 打开图像采集设备
      • 1.1.2 获取图像
      • 1.1.3 关闭图像采集设备
      • 1.1.4 A First Example
    • 1.2 扩展概念
      • 1.2.1 打开图像采集设备
      • 1.2.2 设置参数
      • 1.2.3 获取图像
    • 1.3 编程示例
    • 1.4 选择算子
      • 1.4.1 打开图像采集设备
      • 1.4.2 设置参数
      • 1.4.3 获取图像
      • 1.4.4 关闭图像采集设备
    • 1.5 Tips & Tricks
      • 1.5.1 直接访问内存中的外部图像
      • 1.5.2 不支持的图像采集设备

1、HALCON 图像采集

显然,图像的获取是所有机器视觉应用中必须解决的任务。不幸的是,这项任务主要包括与图像采集设备形式的特殊非标准化硬件进行交互,例如图像采集卡或 IEEE 1394 相机。为了让您专注于实际的机器视觉问题,HALCON 为您提供了为大量图像采集设备执行这种交互的接口(有关最新信息,请参见 http://www.mvtec.com/halcon/framegrabber)。

在您的 HALCON 应用程序中,图像采集任务因此减少到几行代码,即几个操作员调用。更重要的是,这种简单性并不是以限制可用功能为代价来实现的:使用 HALCON,您可以在不同的定时模式下从各种配置的采集设备和相机中获取图像。
除了从相机获取图像外,HALCON 还允许您输入存储在文件中的图像(支持的格式:BMP、TIFF、GIF、JPEG、PNG、PNM、PCX、XWD)。当然,您也可以将获取的图像存储在文件中。

1.1 基本概念

使用 HALCON 获取图像基本上包括三个步骤。 从文件中读取图像甚至更简单:它由对操作符 read_image 的单个调用组成。

1.1.1 打开图像采集设备

如果您想从图像采集卡或 IEEE 1394 相机等图像采集设备获取图像,第一步是连接到该设备。 HALCON 使您免于所有特定于设备的详细信息;您需要做的就是调用操作符 open_framegrabber,指定相应图像采集接口的名称
还有一个名为 File 的“虚拟”图像采集接口。顾名思义,这个“帧抓取器”从文件中读取图像,也从所谓的图像序列文件中读取图像。后者是特定于 HALCON 的文件,通常带有扩展名 .seq;它们包含一个由新行分隔的图像文件名列表(您可以使用文本编辑器轻松创建它)。如果您连接到这样的序列,随后对grab_image 的调用将返回文件中指定序列中的图像。或者,您也可以从特定目录读取所有图像。然后,您不必创建序列文件,而只需指定目录名称而不是序列文件作为参数“CameraType”的值。现在,对grab_image 的后续调用将返回在指定图像目录中找到的图像。如果您想用一系列图像文件测试您的应用程序,然后切换到真实的图像采集设备,这两种方法都很有用。

1.1.2 获取图像

连接到设备后,您只需调用grab_image 即可获取图像。
要从磁盘加载图像,请使用 read_image。 在当前目录和环境变量 HALCONIMAGES 中指定的目录中搜索图像。

1.1.3 关闭图像采集设备

在应用程序结束时,您关闭与图像采集设备的连接以使用操作符 close_framegrabber 释放其资源。

1.1.4 A First Example

如前所述,从文件中获取图像对应于单个操作员调用:

read_image (Image, 'particle')

以下代码处理从图像序列文件中读取的图像:

SequenceName := 'pendulum/pendulum.seq'
open_framegrabber ('File', -1, -1, -1, -1, -1, -1, 'default', -1, 'default', \
-1, 'default', SequenceName, 'default', -1, -1, \
AcqHandle)
while (ImageNum <= MaxImageNum)
grab_image (Image, AcqHandle)
... process image ...
ImageNum := ImageNum + 1
endwhile

1.2 扩展概念

在实际应用中,通常告诉相机获取图像是不够的; 相反,以正确的时刻或速率采集图像以及适当配置相机和图像采集接口可能很重要。 因此,HALCON 允许进一步参数化采集过程。 在 HDevelop 中,通过菜单项 Assistants > Image Acquisition 提供了一个助手,它可以帮助您选择图像源、调整参数和生成合适的代码。

1.2.1 打开图像采集设备

使用open_framegrabber连接你的图像采集设备时,主要参数是对应的HALCON图像采集接口的名称。因此,您将获得一个所谓的句柄,您可以稍后使用该句柄访问设备,例如,使用grab_imagegrab_image_async 获取图像。
使用 open_framegrabber 的其他参数,您可以描述图像采集设备和摄像头的配置,这在使用更复杂的配置时是必要的,例如,多个摄像头连接到不同帧采集卡上的不同端口。更多参数允许您指定所需的图像格式(大小、分辨率、像素类型、色彩空间)。对于大多数这些参数,如果您指定值“default”(字符串参数)或 -1(数字参数),则会使用默认值。
使用操作符 info_framegrabber,您可以查询接口版本号或可用板卡、端口号和相机类型等信息。
有关 open_framegrabber 参数的详细信息可以在解决方案指南 II-A 中找到(配置连接:第 11 页的第 3 部分;配置获取的图像:第 19 页的第 4 部分)。

1.2.2 设置参数

如上所述,您已经在使用 open_framegrabber 连接到图像采集设备时设置了参数。 这些参数(image_acquisition device(s)/camera(s)的配置和图像尺寸等)就是所谓的通用参数,因为它们几乎是所有图像采集接口的通用参数。 然而,图像采集设备在提供的功能方面差异很大,导致更多的特殊参数。 可以使用运算符 set_framegrabber_param 自定义这些参数。
使用运算符 get_framegrabber_param 您可以查询常用和特殊参数的当前值。
有关设置参数的详细信息,请参见第 19 页第 4 部分的解决方案指南 II-A。

1.2.3 获取图像

实际上,在典型的机器视觉应用中,您不会使用操作符grab_image 来获取图像,而是使用grab_image_async。 这两个操作符之间的区别如下: 如果在循环中获取和处理图像,grab_image 总是请求获取新图像,然后阻塞程序,直到获取完成。 然后,图像被处理,之后,程序等待下一个图像。 相比之下,使用grab_image_async 时,图像是并行采集和处理的:在处理图像时,已经在采集下一幅图像。 当然,这会导致应用程序的显着加速。
HALCON 提供了更多的图像采集模式,例如,通过外部信号触发采集或从多个相机同时采集图像。 有关各种图像采集模式的详细信息,请参见第 25 页第 5 部分的解决方案指南 II-A。

1.3 编程示例

可以在目录 %HAL- 中找到所有提供的图像采集接口的示例程序
CONEXAMPLES%\hdevelop\Image\Acquisition。 解决方案指南 II-A 中描述了更多示例。

1.4 选择算子

1.4.1 打开图像采集设备

Standard:
open_framegrabber
Advanced:
info_framegrabber

1.4.2 设置参数

Standard:
set_framegrabber_param, get_framegrabber_param

1.4.3 获取图像

Standard:
read_image, grab_image, grab_image_async

1.4.4 关闭图像采集设备

Standard:
close_framegrabber

1.5 Tips & Tricks

1.5.1 直接访问内存中的外部图像

您还可以使用运算符 gen_image1、gen_image3、gen_image1_extern 或 gen_image3_extern 将外部创建的图像(即计算机内存中的原始图像矩阵)传递给 HALCON。 有关示例,请参阅解决方案指南 II-A,第 40 页上的第 6.2 节。

1.5.2 不支持的图像采集设备

如果您想使用HALCON目前不支持的图像采集设备,即不存在HALCON图像采集接口,您可以创建自己的接口; Image Acquisition Interface Programmer’s Manual 中详细描述了如何执行此操作。

Halcon之图像采集相关推荐

  1. HALCON:图像采集之同步采集(synchronous)与异步采集(asynchronous)

    HALCON图像采集之同步采集(synchronous)与异步采集(asynchronous) 通常情况下,当我们抓取帧的时候是从一个连续的视频流序列中去抓取一个或者多个视频帧.尽管近来有许多专业设备 ...

  2. Halcon学习---图像采集助手

    目录 (一)打开图像采集助手 (二)图像资源的获取方式 1.图像获取接口 2.图像文件 3.可通过快捷键Ctrl+ r读取图像 (三)连接相机,设置参数 1.连接相机,采集图像 2.设置相机参数 (四 ...

  3. Halcon :畸变矫正与标定(2)

    相机标定 1.相机标定是什么 2.怎么使用halcon进行相机内外参标定? (1)搭建硬件 1.**相机连好电脑,用相机厂家软件打开相机,检查一下相机是否正常.** 2.**接下来使用halcon连接 ...

  4. Halcon产品描述

    产品简介: HALCON是德国MVTec公司研发的高性能通用图像处理算法软件包,由1400多个图像处理算子和多种交互式开发工具组成.满足各类机器视觉应用领域需求的专业软件,可应用于多种行业. 用HAL ...

  5. Halcon中的测量工具(找边找圆等)——Metrology系列

    Halcon中的测量工具(找边找圆等)--Metrology系列 1. Halcon中的工具助手 对于使用Halcon的小伙伴们来说,在菜单栏上的"助手"一栏中可以找到一些可以快捷 ...

  6. Halcon之一维测量

    Halcon之一维测量 一维测量 1.基本概念 1.1 获取图像 1.2 创建测量对象 1.3 测量 1.4 销毁测量对象 2 扩展概念 2.1 辐射校准图像 2.2 对齐 ROI 或图像 2.3 校 ...

  7. 学习机器视觉的参考顺序

    刚开始接触机器视觉的朋友可以按这个一步步来学习,挺好用的, 一:视觉启蒙入门 1.halcon编程,熟悉halcon环境.tuple数组.文件操作及简单的案例编程 2. halcon基础学习,halc ...

  8. c# 网口相机可以通过_c# Halcon 实现通过相机图像采集及处理

    [实例简介]c# & Halcon 实现通过相机图像采集及处理 [实例截图] [核心代码] using System; using System.Collections.Generic; us ...

  9. Halcon学习之图像采集

    Halcon学习之图像采集 1.读取文件夹中的图片 1.1打开Halcon12开发环境 1.2打开"助手"中的"Image Acquistion" 1.3选择& ...

最新文章

  1. android单线字体,Android自定义字体
  2. 独家 | 教你用卷积神经网络对视觉神经元进行建模(附资源)
  3. springboot后台弹出前台对话框_基于springboot的精品小说网站
  4. SQL SERVER 数据库 怎么从一个服务器一个表中把数据插入到另一个服务器中的一个表内(纯复制)...
  5. 2-RabbitMQ核心概念及AMQP协议
  6. 用FPGA搭建一个STM32内核?
  7. 最长单调递增子序列_最长递增子序列(动态规划 + 二分搜索)
  8. Oreilly.Python.Cookbook(3rd.Edition.May.2013)pdf
  9. 这本京东断货王的Python神书,刷爆整个编程圈!| 测评
  10. linux服务器登录次数,Linux 服务器和Windows服务器 用户登录失败次数限制【互联网金融系统漏洞排查】...
  11. django settings 定义的变量不存在_【Django】第一期|初识Django以及基本安装方法和配置...
  12. WINDOWS获得当前执行程序路径的办法
  13. 红米note5linux刷机包_红米Note5刷机包 MIUI11
  14. python基金估值查询_利用python实现基金估值的邮件发送
  15. python计算增长率_计算Pandas集团年增长率
  16. 绝对最大额定值(ABSOLUTE MAXIMUM RATINGS: ABS)是否可以超过
  17. 从0开始学大数据(十二)
  18. phython学习笔记1
  19. android 跟踪方法调用,如何连续跟踪Android手机的位置?
  20. AG9320MCQ中文设计资料|AG9320MCQ设计TYPEC转HDMI+VGA双口拓展坞方案|AG9320MCQ拓展坞设计

热门文章

  1. 对接第三方系统实操经验分享
  2. 手机计算机在线汇率准确吗,汇率计算机(汇率计算器在线计算)
  3. 大数据薪水大概多少_入行大数据,薪资待遇到底能拿多少?
  4. 【梅哥的Ring0湿润插入教程】第一课Windows内核/驱动编程概述及应用、商业驱动保护软件原理分析...
  5. 360n4手机可以装linux,360手机N4 root教程_360手机N4获取root权限的方法
  6. 如何做好企业抖音内容运营?
  7. 看这里!你的手机号关联了多少互联网账号?一证通查→
  8. 相对于石墨烯来说,氧化石墨烯中大量含氧官能团的存在使之具有优异的亲水性和高度的化学可协调性
  9. Tigase下载安装(Linxu+Window版本)实现教程+配置聊天记录入数据库
  10. 位置2处的索引超过边界总数matlab,位置 2 处的索引超出数组边界(不能超出 2)。...