0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

连接到您的图像采集设备

机器人及PLC自动化应用 来源:机器人及PLC自动化应用 2023-04-23 09:48 次阅读

连接到图像采集卡

open_framegrabber (AcqName, 1, 1, 0, 0, 0, 0, ‘default’, -1, ‘default’, -1, ‘false’, CameraType, myBoard, -1, -1, AcqHandle)

使用操作符 open_framegrabber 打开与图像采集设备的连接时,主要参数是相应 HALCON 采集接口的名称。因此,您将获得一个所谓的句柄 (AcqHandle),通过它您可以访问图像采集设备,例如,在调用操作者grab_image 时。

8c0c47e2-e04a-11ed-bfe3-dac502259ad0.png

图 2.1:a) 获取的图像;b) 处理过的图像(自动分割)

在示例中,大多数其他参数使用默认值(‘default’ 或 -1)

第 2 步:抓取图像

grab_image (Image, AcqHandle)

成功连接到您的图像采集设备后,您可以通过调用带有相应句柄 AcqHandle 的操作符grab_image 来抓取图像。

第 3 步:循环抓取和处理图像

while (Button != 1)

grab_image (Image, AcqHandle)

dev_set_window (WindowHandle)

dev_display (Image)

* -》 process image (segment with an automatically determined threshold)

auto_threshold (Image, Regions, 4)

connection (Regions, ConnectedRegions)

dev_set_window (WindowHandleProcess)

dev_display (ConnectedRegions)

* -》 check for a click into the window (error handling switched off, otherwise the cursor must always be in the window)

dev_set_check (‘~give_error’)

get_mposition (WindowHandleButton, Row, Column, Button)

dev_set_check (‘give_error’)

endwhile

在示例中,然后使用运算符 auto_threshold 自动分割抓取的图像(见图 2.1)。这是在循环中完成的,可以通过用鼠标左键单击窗口来退出。

3、连接到您的图像采集设备

在本节中,我们将展示如何连接到不同配置的图像采集卡和相机,从一个相机连接到一个图像采集卡的简单情况到更复杂的情况,例如多个同步相机连接到 一块或多块板。

8c383a46-e04a-11ed-bfe3-dac502259ad0.png

3.1 打开指定配置的连接

用操作符 open_framegrabber,您可以打开与图像采集设备的连接。这种连接由四个参数描述(见图 3.1):首先,您选择一个带有参数 Name 的采集接口。参数 Device 指定实际的板卡或相机;根据采集接口,该参数可以包含描述板的字符串或简单的数字(以字符串的形式!)。

通常,相机可以连接到不同端口的图像采集卡,其数量可以通过参数 Port(在极少数情况下为 LineIn)来选择。参数 CameraType 描述了连接的摄像头:对于模拟摄像头,该参数通常指定使用的信号范数,例如,‘ntsc’。对于数码相机,此参数通常指定相机型号;更复杂的采集接口使用此参数来选择相机配置文件。

因此,open_framegrabber 在参数 AcqHandle 中返回打开连接的句柄。请注意,如果您使用 HALCON 的 COM 或 C++ 接口并通过相应的类调用操作符,例如 C++ 中的 HFramegrabber,则不会返回句柄,因为类的实例本身充当您的句柄。

使用 HDevelop 的图像采集助手,您可以轻松连接到您的图像采集设备并选择合适的参数

3.2 连接多个板卡和摄像头

大多数 HALCON 采集接口允许使用多个图像采集卡和相机。但是,连接摄像机和电路板以及从 HALCON 内部访问这些配置的方法不止一种。下面,我们描述不同的配置;请检查您的图像采集设备的 HALCON 接口的在线文档(请参阅 %HALCONROOT%dochtmlmanuals、Windows 开始菜单中的 HALCON 文件夹,或 http://www.halcon.com/image-acquisition) 它支持哪些配置。

3.2.1 单摄像头

图 3.2a 显示了最简单的配置:单个摄像头连接到单个板上,可通过单个手柄访问。一些图像采集卡,尤其是数字图像采集卡,只支持这种配置;如以下部分所述,您仍然可以通过将每个摄像头连接到单独的电路板来使用具有此类图像采集卡的多个摄像头。请注意,此配置是通过 USB 2.0、IEEE 1394 或 GigE 连接的数码相机的典型配置。

3.2.2 Multiple Boards

图 3.2b 显示了具有多个摄像头的配置,每个摄像头都连接到单独的电路板。在这种情况下,您在 HDevelop 示例程序 solution_guideimage_acquisitionmultiple_boards.hdev 中为每个连接调用一次操作符 open_framegrabber。

8c56fb3e-e04a-11ed-bfe3-dac502259ad0.png

图 3.2:a) 单板单摄像头;b) 多块板,每块带一个摄像头;c) 带有一个或多个摄像头的多块板;d) 单板多摄像头和端口切换;e) 单板多摄像头同时抓取;f) 使用多个电路板和相机同时抓取

open_framegrabber (AcqName, 1, 1, 0, 0, 0, 0, ‘default’, -1, ‘default’, -1, ‘default’, ‘default’, Board0, -1, -1, AcqHandle0)

open_framegrabber (AcqName, 1, 1, 0, 0, 0, 0, ‘default’, -1, ‘default’, -1, ‘default’, ‘default’, Board1, -1, -1, AcqHandle1)

在此示例中,两个调用仅在参数 Device(“0”和“1”)的值上有所不同;当然,您也可以为其他参数使用不同的值,甚至可以连接到不同的图像采集接口。

要从两个摄像头抓取图像,您只需使用两次调用 open_framegrabber 返回的两个句柄调用一次操作符grab_image:

grab_image (Image0, AcqHandle0)

grab_image (Image1, AcqHandle1)

3.2.3 每块板有多个手柄

许多图像采集卡提供多个输入端口,因此允许将多个摄像头连接到板上。根据 HALCON 采集接口的不同,可以通过本节和以下各节中描述的不同方式访问此配置。

连接相机的标准HALCON方法如图3.2c所示:每个连接都有自己的句柄,即open_framegrabber为每个相机调用一次,参数Port的值不同,如HDevelop示例程序solution_guideimage_acquisition multiple_ports.hdev:

open_framegrabber (AcqName, 1, 1, 0, 0, 0, 0, ‘default’, -1, ‘default’, -1,

‘default’, ‘default’, Board0, Port0, -1, AcqHandle0)

open_framegrabber (AcqName, 1, 1, 0, 0, 0, 0, ‘default’, -1, ‘default’, -1,

‘default’, ‘default’, Board1, Port1, -1, AcqHandle1)

grab_image (Image0, AcqHandle0) grab_image (Image1, AcqHandle1)

如图 3.2c 所示,您还可以使用多个板卡连接多个摄像头

3.2.4 端口交换

一些图像采集接口不通过多个手柄访问相机,而是通过动态切换输入端口(见图 3.2d)。因此,open_framegrabber 只被调用一次,就像在 HDevelop 示例程序 solution_guideimage_acquisitionport_switching.hdev 中一样:

open_framegrabber (AcqName, 1, 1, 0, 0, 0, 0, ‘default’, -1, ‘default’, -1, ‘default’, ‘default’, ‘default’, 0, -1, AcqHandle)

在抓取图像之间,您使用运算符 set_framegrabber_param 切换端口

set_framegrabber_param (AcqHandle, ‘port’, Port0)

dev_set_window (WindowHandle0)

grab_image (Image0, AcqHandle)

set_framegrabber_param (AcqHandle, ‘port’, Port1)

dev_set_window (WindowHandle1)

grab_image (Image1, AcqHandle)

注意,端口切换仅适用于兼容(类似)相机,因为 open_framegrabber 仅被调用一次,即所有相机使用相同的参数值集。相比之下,当如上所述使用多个手柄时,您可以为各个相机指定不同的参数值(有一些特定于板的限制)。

3.2.5 同时抓取(仅针对特定接口)

在上述配置中,图像是通过多次调用操作者grab_image从单个相机中抓取的。相比之下,一些采集接口允许通过一次调用grab_image从多个摄像头抓取图像,然后返回多通道图像(参见图3.2e;第51页的附录A.1包含有关多通道图像的更多信息) 。 这种模式称为同时抓取(或并行抓取);与端口切换一样,它仅适用于兼容(类似)的相机。例如,您可以使用此模式从立体相机系统中抓取同步图像。请注意,同时抓取仅适用于极少数图像采集接口。

在这种模式下,open_framegrabber 只被调用一次,可以在 HDevelop 示例程序 solution_guideimage_acquisitionsimultaneous_grabbing.hdev 中看到:

open_framegrabber (AcqName, 1, 1, 0, 0, 0, 0, ‘default’, -1, ‘default’, -1, ‘default’, ‘default’, ‘default’, 0, -1, AcqHandle)

您可以使用运算符 count_channels 检查返回图像(通道)的数量

grab_image (SimulImages, AcqHandle)

count_channels (SimulImages, num_channels)

并根据图像数量提取单个图像,例如使用分解2、分解3等:

if (num_channels == 2)

decompose2 (SimulImages, Image0, Image1)

或者,您可以使用 image_to_channels 将多通道图像转换为图像数组,然后通过 select_obj 选择单个图像。

3.3 请求有关图像采集接口的信息

如前所述,各个 HALCON 采集接口在 HTML 页面上有详细描述,这些页面可以在目录 %HALCONROOT%dochtmlmanuals 或 Windows 开始菜单的 HALCON 文件夹中找到(如果您安装了文档)。另一种访问图像采集接口信息的方法是使用操作符 info_framegrabber。

在HDevelop示例程序solution_guideimage_acquisitioninfo_framegrabber.hdev(为HALCON 1394IIDC接口预配置,请根据自己的图像采集设备调整接口名称)多次调用该算子查询接口版本号、可用设备 ,端口号,相机类型,以及open_framegrabber所有参数的默认值;结果,即 HDevelop 变量窗口中显示的值,如图 3.3 所示。

info_framegrabber (AcqName, ‘general’, GeneralInfo, GeneralValue)

info_framegrabber (AcqName, ‘revision’, RevisionInfo, RevisionValue) info_framegrabber (AcqName, ‘info_boards’, BoardsInfo, BoardsValue) info_framegrabber (AcqName, ‘generic’, GenericInfo, GenericValue)

info_framegrabber (AcqName, ‘camera_type’, CamTypeInfo, CamTypeValue) info_framegrabber (AcqName, ‘defaults’, DefaultsInfo, DefaultsValue)

在使用 open_framegrabber 实际连接到图像采集设备之前,可以调用操作符 info_framegrabber。唯一的条件是已经安装了HALCON采集接口和设备驱动和SDK。

8c8100d2-e04a-11ed-bfe3-dac502259ad0.png

审核编辑 :李倩

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 图像采集
    +关注

    关注

    2

    文章

    280

    浏览量

    41075
  • 相机
    +关注

    关注

    4

    文章

    1253

    浏览量

    52452
收藏 人收藏

    评论

    相关推荐

    舰载高速图像采集系统

    舰载高速图像采集系统湖南科天健光电技术有限公司的高速图像采集系统在海面上也有同样的应用,将设备装载在船上,组成舰载高速
    发表于 04-15 16:20

    基于labview的图像采集程序

    相关课程推荐:1.《龙哥手把手教LabVIEW视觉设计(自学版)》基于labview的图像采集程序,供搞图像的盆友参考
    发表于 12-18 10:36

    CCS不能连接到设备

    板子为cc3200,开发环境为CCS v6,现在操作例程,想在线调试,就是加载到ram 里面,但是显示不能连接到设备,经过查阅资料发现,需要加载配置文件CC3200.ccxml,但是加载后发现是红色
    发表于 04-06 08:34

    LabVIEW最快能以什么速率采集图像

    采集板卡,连接到PCI总线上的所有设备性能都会大幅度下降。​编辑添加图片注释,不超过 140 字(可选)​​​​​​​另外,数据存入硬盘的速率也是采集
    发表于 05-20 21:08

    基于FPGA的图像采集模块设计

    图像采集图像处理的前提。图像采集卡是常用的图像输入设备
    发表于 05-22 16:23 2982次阅读
    基于FPGA的<b class='flag-5'>图像</b><b class='flag-5'>采集</b>模块设计

    怎样将虚拟机连接到远程串行端口和设备

    通过使用称为串行到以太网连接器的专用通信软件应用程序,可以将虚拟机连接到远程串行端口和设备
    的头像 发表于 07-26 14:23 4795次阅读

    EE-258:将Micron MT9V022图像传感器连接到Blackfin®处理器

    EE-258:将Micron MT9V022图像传感器连接到Blackfin®处理器
    发表于 04-13 15:05 8次下载
    EE-258:将Micron MT9V022<b class='flag-5'>图像</b>传感器<b class='flag-5'>连接到</b>Blackfin®处理器

    EE-300:将Blackfin®EZ-KIT Lite®板连接到CMOS图像传感器

    EE-300:将Blackfin®EZ-KIT Lite®板连接到CMOS图像传感器
    发表于 04-27 17:21 1次下载
    EE-300:将Blackfin®EZ-KIT Lite®板<b class='flag-5'>连接到</b>CMOS<b class='flag-5'>图像</b>传感器

    如何连接到不同配置的图像采集卡和相机

    用操作符 open_framegrabber,您可以打开与图像采集设备连接。这种连接由四个参数描述(见图 3.1):首先,您选择一个带有参
    的头像 发表于 04-23 09:47 1478次阅读
    如何<b class='flag-5'>连接到</b>不同配置的<b class='flag-5'>图像</b><b class='flag-5'>采集</b>卡和相机

    从Web浏览器连接到蓝牙设备

    电子发烧友网站提供《从Web浏览器连接到蓝牙设备.zip》资料免费下载
    发表于 06-28 11:26 0次下载
    从Web浏览器<b class='flag-5'>连接到</b>蓝牙<b class='flag-5'>设备</b>

    USB图像采集卡是什么

    USB图像采集卡是一种用于连接计算机和摄像机、摄像头或其他视频设备设备。它充当了一个接口,使得视频信号可以通过USB接口传输到计算机,并且
    的头像 发表于 07-26 16:35 771次阅读
    USB<b class='flag-5'>图像</b><b class='flag-5'>采集</b>卡是什么

    图像采集卡在应用程序的重要性概述

    达到最大吞吐量是工业和工厂自动化的关键标准之一。提高传感器分辨率和帧速率有助于实现目标,但会限制带宽,并带来新的传输问题。图像采集卡是将相机连接到PC的最方便、最可靠的方式,在工业环境中使用
    的头像 发表于 09-26 15:07 1017次阅读
    <b class='flag-5'>图像</b><b class='flag-5'>采集</b>卡在应用程序的重要性概述

    PCIe图像采集卡的原理、应用和优势

    PCIe图像采集卡是一种用于将模拟图像信号转换为数字信号并传输到计算机的设备。它在许多领域中被广泛应用,包括医学影像、工业检测、机器视觉等。本文将介绍PCIe
    的头像 发表于 10-20 15:07 661次阅读
    PCIe<b class='flag-5'>图像</b><b class='flag-5'>采集</b>卡的原理、应用和优势

    PCIe图像采集卡的原理、应用和优势

    PCIe图像采集卡的原理、应用和优势  PCIe图像采集卡是一种用于获取和处理图像信号的硬件设备
    的头像 发表于 12-15 09:57 420次阅读

    图像采集卡与千兆卡的区别

    卡是一种专门用于接收和处理图像信号的设备。它一般通过接口将摄像机、监控设备图像连接到计算机上,实现
    的头像 发表于 12-15 09:57 451次阅读