00. 目录

文章目录

  • 00. 目录
  • 01. 概述
  • 02. 相机接口
    • 2.1 USB接口
    • 2.2 IEEE1394接口
    • 2.3 CameraLink接口
    • 2.4 GigE千兆以太网接口
    • 2.5 CoaXPress接口
    • 2.6 Nbase-T接口
    • 2.7 光纤接口
  • 03. Halcon图像采集过程
    • 3.1 打开设备
    • 3.2 设置相机参数
    • 3.3 获取图像
    • 3.4 结束采集图像
  • 04. Halcon相机助手
  • 05. 文件读取
    • 5.1 通过读取图像助手读取图像
    • 5.2 通过拖拽文件到主窗口
    • 5.3 通过图像采集助手读取图片
    • 5.4 通过代码读取图像
    • 5.5 通过代码生成图像
  • 06. 预留
  • 07. 附录

01. 概述

Halcon是一款图像处理软件。在Halcon中获取图像有3种方式:

  • 使用硬件采集图像
  • 直接读取采集好的图像
  • 通过某些方法生成一张图像

02. 相机接口

2.1 USB接口

USB接口相机是数字相机,直接输出数字图像信号。USB全称是UniversalSerialBus(通用串行总线),USB接口是4“针”,其中2根为电源线、2根为信号线。USB是串行接口,可热拔插,连接方便。USB2.0,传输速度480Mbps,通讯距离5m,80%的带宽用于图像传输。USB3.0,传输速度4.8Gbps,通讯距离10m,80%的带宽用于图像传输。由于USB接口相机使用方便,接口广泛,目前在显微镜、科研实验、便携式设备等行业大量应用。

2.2 IEEE1394接口

1394接口,又称“火线”(FireWire),用于将数码产品与计算机及其他机器之间的连接。IEEE1394总线是高速串行总线,1394a最高的传输速度为400Mbps,1394b最高的传输速度为800Mbps。IEEE1394支持热插拔、数据传输实时性、采用总线结构、即插即用。1394接口分为4芯和6芯,4芯中有两对数据线,6芯除数据线外还包括一组电源线以对外接设备进行供电。IEEE1394接口,不需要控制器,可以实现对等传输,1394a最大传输距离为4.5米,1394b传输距离通常为10米,在降数据率情况下可延伸到100米(100Mbps),采用中继设备支持可进一步提高传输距离。

2.3 CameraLink接口

由AIA协会推出的数字图像信号通讯接口协议,是一种串行通讯协议。采用LVDS接口标准,具有速度快、抗干扰能力强、功耗低。从Channellink技术上发展而来的,在Channellink技术基础上增加了一些传输控制信号,并定义了一些相关传输标准。协议采用MDR-26针连接器或SDR-26针连接器,具有高速率,带宽可达6400Mbps、抗干扰能力强、功耗低的特点。

2.4 GigE千兆以太网接口

由AIA(AutomatdeImagingAssociation)创建并推广,是一种基于千兆以太网通信协议开发的相机接口标准。适用于工业成像应用,通过网络传输无压缩视频信号。是一个使用价格低廉线缆长距离传输图像的标准。

2.5 CoaXPress接口

CoaXPress是一种非对称的高速点对点串行通信数字接口标准,传输速度高达6.25Gbps,传输距离超过100m。数据传输量大,传输距离长,可选择传输距离和传输量:从50m@6.25Gbps到170m@1.25Gbps,价格低廉,易集成、支持热插拔。

2.6 Nbase-T接口

Nbase-T接口技术是有Nbase-T联盟引领的一种全新的网络技术,它通过定义一种新的以太网信号方式,使得现有已安装的双绞线能够在长达100m的范围内突破线缆1Gb/s的限制。Nbase-T可以让现有大量安装的超5类和6类线的传输速度达到2.5Gb/s或5Gb/s。

Nbase-T接口特点如下:它是GigE接口的升级版,在传输距离不变,器材不变的情况下,传输速度可以达到5Gb/s。

2.7 光纤接口

光纤接口是基于光纤通信的接口,其传输速度可达16.3Gb/s,单模光纤的连接距离可达10km,多模光纤的连接距离可达300m或者500m。一般情况下,光纤需要配备“特别”的采集卡,而且光纤线不能随意从中间连接,而需要专业设备才能连接,在连接处会比较脆弱,易出现故障。

光纤接口特点包括光纤通道传输速度快,传输距离远,但需要更新原有线缆设备。

03. Halcon图像采集过程

3.1 打开设备

相关算子

open_framegrabber 算子

程序示例

* Select a suitable image acquisition interface name AcqName
info_framegrabber(AcqName,'port',Information,Values)
* Open image acquisition device using the default settings, see
* documentation of the actually used interface for more details
open_framegrabber(AcqName,1,1,0,0,0,0,'default',-1,'default',-1.0, \'default','default','default',-1,-1,AcqHandle)
grab_image(Image,AcqHandle)
close_framegrabber(AcqHandle)

3.2 设置相机参数

相关算子

set_framegrabber_param

get_framegrabber_param

不同相机可以设置的参数有所不同。

3.3 获取图像

相关算子

从指定的图像采集设备启动异步采集

grab_image_start

从指定的图像采集设备异步采集一幅图像

grab_image_async

从指定的图像采集设备同步抓取图像

grab_image

异步采集示例

* Select a suitable image acquisition interface named AcqName.
open_framegrabber('AcqName', 1, 1, 0, 0, 0, 0, 'default', -1, 'default', \-1.0, 'default', 'default', 'default', -1, -1, AcqHandle)
* Start asynchronous grabbing.
grab_image_start(AcqHandle, -1)
* Run acquisition loop.
while (true)* Get image, start next grab.grab_image_async(Image, AcqHandle, -1.0)* Next: Do something with the grabbed image.
endwhile
close_framegrabber(AcqHandle)

同步采集图像示例

* Select a suitable image acquisition interface name AcqName
info_framegrabber(AcqName,'port',Information,Values)
* Open image acquisition device using the default settings, see
* documentation of the actually used interface for more details
open_framegrabber(AcqName,1,1,0,0,0,0,'default',-1,'default',-1.0, \'default','default','default',-1,-1,AcqHandle)
grab_image(Image,AcqHandle)
close_framegrabber(AcqHandle)

3.4 结束采集图像

相关算子

关闭指定的图像采集设备

close_framegrabber

04. Halcon相机助手

通过Halcon相机助手采集图像,然后生成代码。

05. 文件读取

在不能通过硬件获取图像的时候,就需要将拍摄好的图像加载到程序中,HALCON提供了几种读取图像的方法。

5.1 通过读取图像助手读取图像

选择“文件”菜单中的“读取图像”的选项

选择图像,然后选择确定

生成代码如下:

read_image (Image, 'E:/苹果.jpg')

5.2 通过拖拽文件到主窗口

拖拽图片文件到Halcon主窗口,出现如下对话框

选择确定,自动插入如下代码

read_image (Image2, 'E:/苹果2.jpg')

5.3 通过图像采集助手读取图片

最后生成代码如下

* Image Acquisition 01: Code generated by Image Acquisition 01
list_files ('E:', ['files','follow_links'], ImageFiles)
tuple_regexp_select (ImageFiles, ['\\.(tif|tiff|gif|bmp|jpg|jpeg|jp2|png|pcx|pgm|ppm|pbm|xwd|ima|hobj)$','ignore_case'], ImageFiles)
for Index := 0 to |ImageFiles| - 1 by 1read_image (Image, ImageFiles[Index])* Image Acquisition 01: Do something
endfor

5.4 通过代码读取图像

通过代码的方式批量读取文件夹图像

* Image Acquisition 01: Code generated by Image Acquisition 01* 文件路径
list_files ('E:/IMG', ['files','follow_links'], ImageFiles)* 筛选图片格式
tuple_regexp_select (ImageFiles, ['\\.(tif|tiff|gif|bmp|jpg|jpeg|jp2|png|pcx|pgm|ppm|pbm|xwd|ima|hobj)$','ignore_case'], ImageFiles)* 循环读取文件夹图像
for Index := 0 to |ImageFiles| - 1 by 1read_image (Image, ImageFiles[Index])* Image Acquisition 01: Do something
endfor

5.5 通过代码生成图像

示例代码如下


* 生成一张无灰度的图像
gen_image_const (Image, 'byte', 32, 32)* 生成一种灰度渐变的图像
gen_image_gray_ramp (ImageGrayRamp, 1, 1, 128, 256, 256, 512, 512)* 生成一张有灰度的图像
gen_image_proto (ImageGrayRamp, ImageCleared, 128)* 设置图像某点灰度值
set_grayval (ImageCleared, 10, 10, 255)

06. 预留

07. 附录

7.1 机器视觉博客汇总
网址:https://dengjin.blog.csdn.net/article/details/116837497

【机器视觉】 halcon中图像获取相关推荐

  1. 转:跟我学机器视觉-HALCON学习例程中文详解-QQ摄像头读取条码

    跟我学机器视觉-HALCON学习例程中文详解-QQ摄像头读取条码 跟我学机器视觉-HALCON学习例程中文详解-QQ摄像头读取条码 第一步:插入QQ摄像头,安装好驱动(有的可能免驱动) 第二步:打开H ...

  2. halcon例程讲解_跟我学机器视觉-HALCON学习例程中文详解-开关引脚测量

    跟我学机器视觉-HALCON学习例程中文详解-开关引脚测量 This example program demonstrates the basic usage of a measure object. ...

  3. (一)掰开了,揉碎了,说经典halcon中的那些算子

    最重要的写在前面: 文末:我曾尝试用OpenCV中算子来还原Halcon中的算子,但是受时间和经验的限制,只能进行到如下:如果后续有必须应用OpenCV的场景,再结合起来搞. 但是最重要的经验是: 1 ...

  4. halcon中相似变换、仿射变换、投影变换的区别以及应用方式和例程

    在机器视觉系统中,镜头是重要成像部件之一,而基于小孔成像原理的工业镜头往往会产生透视畸变现象,如何校正畸变是进行图像分析的前提 ,这其中就会用到投影变换,也是几何变换的一种.除此之外,图像处理中常用到 ...

  5. 图像处理HALCON中的模板匹配方法总结

    HALCON中的模板匹配方法总结 摘要 1. Shape-Based matching的基本流程 2. 基于形状匹配的参数关系与优化 摘要 德国MVTec公司开发的HALCON机器视觉开发软件,提供了 ...

  6. halcon:(4)halcon中XLD的概念与应用----汽车引擎盖圆孔检测

    xld(extended Line Descriptions):扩展线的描述. 在halcon中经常会用到的两个概念: 1.region简单的理解区域region,就是某种具有结构体性质的二值图,正常 ...

  7. Halcon中MIN宏定义与自己定义的C++中MIN函数--重命名冲突问题解决方法

    想要实现一个取得最小值的函数,发现一直出问题,报错 看上面MIN显示为一个宏定义,但是下面才是我们要的函数 看来是重名了,尝试了加括号的方法发现还是不行 后来,考虑到HALCON中的MIN我们不用,解 ...

  8. 机器视觉系统中相机镜头选型技巧_工业相机在机器视觉系统中的地位和作用

    一.什么是工业相机 工业相机是机器视觉系统中的一个关键组件,其最本质的功能就是将光信号转变成有序的电信号.选择合适的相机也是机器视觉系统设计中的重要环节,相机的选择不仅直接决定所采集到的图像分辨率.图 ...

  9. halcon中编程运算符_R编程中的运算符

    halcon中编程运算符 Operators in a programming language are certain tokens or symbols that perform specific ...

最新文章

  1. java client类_Jmeter中自定义JavaSamplerClient类的编写
  2. 简单借还书管理系统c语言,急求程序!!!简单图书馆借/还书管理子系统
  3. 【Groovy】自定义 Xml 生成器 BuilderSupport ( nodeCompleted 方法获取节点闭合信息 )
  4. Python入门100题 | 第030题
  5. C++ 一个例子彻底搞清楚拷贝构造函数和赋值运算符重载的区别
  6. SDUT OJ -2892 A
  7. Canvas制作动态进度加载水球
  8. HTML+CSS+JS实现 ❤️等离子球体ui动画特效❤️
  9. 新手silverlight练习--五子棋( 二 )
  10. 想要成为一名三维建模师?想要月薪10K?你了解这些吗?
  11. phash图像识别应用
  12. android 获取芯片版本_谷歌:未来Android手机将获得4年软件更新
  13. 微软云平台 Azure简介 (三)Windows Azure 存储概述
  14. 文本编辑器——VI/VIM
  15. hashmap自定义排序java,如何在Java中对HashMap进行排序
  16. 2021 年 7 款优秀免费自动回复邮件工具(优缺点比较)
  17. 网易im 服务器消息格式,网易云信快速集成以及消息类型自定义
  18. Python实现多条.txt文本数据合并为.csv文件数据
  19. 小白如何打造一个基础的留言板网站(二)
  20. 哈佛大学公开课-幸福课-个人笔记

热门文章

  1. UImenuController
  2. java的4种代码块
  3. 从一个实例看javascript几种常用格式的转换
  4. 无法访问请求的页面,因为该页的数据的相关配置数据无效
  5. javascript dom追加内容的例子
  6. 庖丁解牛看委托和事件(续)
  7. 中级统计师基础知识中计算机,【2014年中级统计师《统计基础理论及相关知识》预习:计算机操作系统】- 环球网校...
  8. C++中虚函数工作原理和(虚)继承类的内存占用大小计算
  9. lis最长上升子序列o(nlogn)优化
  10. mysql Expression #1 of ORDER BY clause is not in GROUP BY clause and contains nona