线扫相机使用教程

2024-01-26 06:36
文章标签 使用 教程 相机 线扫

本文主要是介绍线扫相机使用教程,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

一.线扫相机的采集原理
在现有的工业 2D 相机中,主要有两种类型的相机,面阵相机和线扫相机。这两种相机有其
各自的特点。
面阵相机:主要用于采集较小尺寸的产品,特别是长度方向较小的产品。其采集原理是通过
单次或多次曝光,最后形成一张固定分辨率的图像,其分辨率不能超过最大的分辨率,且最
大分辨率不能更改。相机采集的时候可以是静止的也可以是运动的。
线扫相机:主要是用于采集较大尺寸的产品,且产品和相机之间存在固定方向的相对运动。
由于其相机的芯片的像元只有一行(彩色为 3 行,黑白为 1 行或者 2 行,一般都不超过 3
行),因此,可以设定任意的行高,理论上可以采集行高可以“无限”,采集的图像分辨率用户
可以根据实际需要设定,这种图像的采集方式可以描述成“聚线成面”。其主要用于食品、纺
织、医药、3C、五金(卷材)、包装等行业。
在这里插入图片描述
二.线扫相机的选型
在实际项目中,怎么选择相机的型号呢?线阵相机有几个关键的参数:
幅宽:与相机扫描方向垂直的方向的视野。例如产品的宽度为 80mm,那么实际采图的时候
需要适当加大一些,可以把幅宽定位 100mm,具体以实际项目为准。
分辨率:线扫相机常用的 2K、4K、8K、16K、32K。
在这里插入图片描述
三.硬件连接
使用线阵相机采集图像的时候,一般需要连接编码器,使用编码器的输出信号作为相机采集
的行信号,编码器一般使用 5V 差分编码器,使用传感器或者 PLC 的输出信号作为帧信号,
帧信号适用于图像开始采集的信号,行信号是控制每一行的采集。
在使用相机采集图像之前,需要先连接好相机的硬件,包括相机电源、网线和 I/O。目前
HC 软件使用线扫相机(Gige 口)有两个品牌:Dalsa 和海康。这两款相机在 HC 软件使用
的时候只支持硬件外触发,因此首先需要连接好相机的电源、网线和 I/O。下面主要讲解这
两款相机的 I/O 接线。
Dalsa 线扫相机
根据 Dalsa 提供的手册中,I/O 的定义如下:
在这里插入图片描述
接线实例一:帧触发+行触发(编码器)采集,接线图如下
帧触发信号源:PNP 传感器或 PLC,信号源选择 line3
行触发信号源:5V 差分编码器,A 相接入 line1,B 相接入 line2
在这里插入图片描述
海康 2K/4K 线扫相机
根据海康用户手册,其 I/O 定义如下,对应相机型号:MV-CL021-40GM、MV-CL022-40GC
和 MV-CL042-90GM/C
在这里插入图片描述
接线实例二:帧触发+行触发(编码器)采集,接线图如下
帧触发信号源:PNP 传感器或 PLC,信号源选择 line1+,无下拉电阻
行触发信号源:5V 差分编码器,A 相接入 line0,B 相接入 line3
在这里插入图片描述
接线实例三:帧触发+行触发(编码器)采集,接线图如下
帧触发信号源:NPN 传感器或 PLC,信号源选择 line1+
行触发信号源:5V 差分编码器,A 相接入 line0,B 相接入 line3
在这里插入图片描述
接线实例四:帧触发+行触发(编码器)采集,接线图如下
帧触发信号源:NPN 传感器或 PLC,信号源选择 line2
行触发信号源:5V 差分编码器,A 相接入 line0,B 相接入 line3
在这里插入图片描述
接线实例五:帧触发+行触发(编码器)采集,接线图如下
帧触发信号源:PNP 传感器或 PLC,信号源选择 line2
行触发信号源:5V 差分编码器,A 相接入 line0,B 相接入 line3
在这里插入图片描述
海康 8K 线扫相机
根据海康用户手册,其I/O定义如下,对应相机型号:MV-CL022-91GM/C、
MV-CL042-91GM/C、MV-CL084-91GM、MV-CL086-91GC 和MV-CL024-91GM/C
在这里插入图片描述
接线实例六:帧触发+行触发(编码器)采集,接线图如下
帧触发信号源:PNP 传感器或 PLC,信号源选择 line1+,接下拉电阻 R1=4.7KΩ(若电压为
12V,R1=1KΩ)
行触发信号源:5V 差分编码器,A 相接入 line0,B 相接入 line3
在这里插入图片描述
接线实例七:帧触发+行触发(编码器)采集,接线图如下
帧触发信号源:PNP 传感器或 PLC,信号源选择 line1-,无下拉电阻
行触发信号源:5V 差分编码器,A 相接入 line0,B 相接入 line3
在这里插入图片描述
接线实例八:帧触发+行触发(编码器)采集,接线图如下
帧触发信号源:NPN 传感器或 PLC,信号源选择 line1+,接上拉电阻 R1=4.7KΩ(若电压为
12V,R1=1KΩ)
行触发信号源:5V 差分编码器,A 相接入 line0,B 相接入 line3
在这里插入图片描述
接线实例九:帧触发+行触发(编码器)采集,接线图如下
帧触发信号源:NPN 传感器或 PLC,信号源选择 line1+,无上拉电阻
行触发信号源:5V 差分编码器,A 相接入 line0,B 相接入 line3
在这里插入图片描述
四.客户端使用
Dalsa 客户端的使用
连接相机并配置 IP
连接好相机的电源以及触发信号并连接网线后, 由于出厂的相机的 IP 不是在工控机对应网
口的同一网段,所以再连接网线后,使用 Dalsa 的网络配置工具 Network Configuration Tool,
配置相应的 IP。操作步骤如下:
1.双击Network Configuration Tool图标,打开软件,点击右下角Scan Network,将默认ip的相机找到。然后点击找到的相机
![在这里插入图片描述](https://img-blog.csdnimg.cn/direct/02a42c43c79a4da49b21897a996d992a.png在这里插入图片描述
2. 选中相机,再点击 Divice IP Configuration,此时可看到相机的默认 IP,点击下方的
Automatic Recovery(Force IP)可临时修改相机 IP 与网卡一致。
在这里插入图片描述
3. 临时修改完 IP 后,相机显示连接正常,然后再点击图三中的第一部 Persistent IP Mode,点击后 IP 变为可编辑,根据需要修改(推荐统一 IP 网口 1 为 192.168.10.88,网口 2 为192.168.20.88,其他网口以此类推),再点击下方的 Apply 按钮,相机静态 IP 配置完成。
在这里插入图片描述
采集图像
配置好静态 IP 后,就可以关掉 IP 配置工具, 双击打开客户端Sapera CamExpert就可以连接相机了,步骤如下:

  1. 打开 CamExpert,点击 Device,展开 Linea_M4096-7um_1,再点击下方出现的相机。
    在这里插入图片描述
  2. 重要参数设置
    曝光、增益
    在这里插入图片描述行触发和帧触发
    在 Trigger Selector 中选择 Single Line Trigger(行触发)的时候,可以设置对应的行触发参数,例如 Trigger Mode 的 ON/OFF(ON 即为使用外部信号作为行触发信号,OFF即不使用外部信号作为行触发信号,以内部特定频率的信号为行触发信号),Trigger
    Source 设置对应的 I/O 作为外部信号的输入端子
    在这里插入图片描述
    在 Trigger Selector 中选择 Single Frame Trigger(帧触发)的时候,可以设置对应的帧触发参数,例如 Trigger Mode 的 ON/OFF(ON 即为使用外部信号作为帧触发信号,OFF 即不使用外部信号作为帧触发信号),Trigger Source 设置对应的 I/O 作为外部信号的输入端子
    在这里插入图片描述
    行高
    在 Image Format Controls 中 Height 对应的就是图像的行高,也就是图像的 Y 方向分辨率
    在这里插入图片描述
  3. 平场校正方法
    平场模式选择:Off-关闭;Active-打开;Calibration-设置模式。
    在这里插入图片描述
    平场未开启状态,如下图,两侧暗,中间亮
    在这里插入图片描述
    将平场模式切换到设置模式,第一个为目标值,设置到合适灰度值,如 200。第二项FPN 为暗场,第三项 PRNU 为明场
    在这里插入图片描述
    将镜头盖盖好,点击 FPN,设置好目标值后,将白纸平铺在视野范围内,点击 PNRU项,做完后切换到 Active 模式点击采集。效果如下:幅面范围内图像均匀
    在这里插入图片描述
    设置保存:
    完成平场后点击下图中的 save 保存设置
    在这里插入图片描述
  4. 调焦
    用一张画有细线的白纸放在相机视野的正中间,调节焦圈直至线条最清晰。完成调焦后
    将镜头所有螺丝都锁紧。
    在这里插入图片描述
  5. 用户参数保存
    选择 Power-up Configuration,选择 User 1,点击 Save 保存参数到账户 1,并将上电参数设置 UserSet1
    在这里插入图片描述海康客户端的使用
    海康线扫相机的连接和普通面阵相机的连接方法相同,这里就不再讲述。下面主要介绍客户
    端的部分参数。
  6. 相机常规参数
    曝光、增益:设置方式和面阵相机基本一样,此处就不再讲述。
    触发模式、行触发、编码器、频率转换器、帧触发:
    触发模式:海康线阵相机硬件触发分为 4 种模式,分别是内触发、行触发、帧触发、行触发
    +帧触发。其设置方式如下
    在这里插入图片描述
    行触发:在硬件外触发的情况下,需要设置行触发的信号源,可以通过如下方法设置
  1. Acquisition Control–>>Trigger Selector–>>Line Start
  2. Trigger Mode–>>on
  3. Trigger source–>>选择 line 中的一路或者 Encoder Module Out(编码器)或者 Frequency
    Converter(频率转换器)
    在这里插入图片描述
    编码器:使用编码器信号的时候,接受的是 AB 相的差分信号
    在这里插入图片描述
    通过 Encoder Control 实现编码器的参数设置,Encoder Source A 和 Encoder Source B 可以分别选择不同的外部信号源。
  4. Encoder Trigger Mode:设置源信号的触发方向,可选择 Any Direction(正方向或反方向均可触发)、Forward Only(正方向触发)、Backward Only(反方向触发)。
  5. Encoder Counter Mode:设置计数方向,可选择Ignore Direction(正向或方向触发均计数)、Follow Direction(正向触发时有效,Encoder Counter 参数增加,反向运动时减少)和Backward Direction(反向触发时计有效,Encoder Counter 参数增加,正向运动
    时减少)
    在这里插入图片描述
    频率转换器:使用频率转换器的时候,接受的也是编码器的信号,只不过设置了分频或者倍频的参数,海康相机是通过预除器、乘法器、分频器来实现信号的分频或者倍频。其流程如下:
    在这里插入图片描述
  6. Frequency Converter Control -->>Input Source 参数选择频率转换的信号来源,可选 Line *或 Encoder Module Out。其中 Line *需要为输入信号。
  7. Signal Alignment–>>Rising Edge(上升沿)或者 Falling Edge(下降沿)
  8. PreDivider:预除器,输入的源信号首先通过预除器处理,通过设置的整数整除,达到降低源信号频率的目的,并将处理后的信号送到乘法器。
  9. Multiplier:乘法器,预除器处理后的信号送到乘法器,乘法器将该信号频率乘以设置的整数,达到增加信号频率的目的,并将信号送到分频器。
  10. PostDivider:分频器,乘法器处理后的信号送到分频器,分频器将该信号通过设置的整数整除,降低信号频率,并将产生的信号作为相机最终的触发信号。
    在这里插入图片描述
    帧触发:在硬件外触发的情况下,需要设置帧触发的信号源,可以通过如下方法设置
  11. Acquisition Control–>>Trigger Selector–>>Frame Burst Start
  12. Trigger Mode–>>on
  13. Trigger Source–>>Line 0(根据实际情况选择)
  14. 其他参数设置方法参照面阵相机。
    在这里插入图片描述
    其他触发相关参数:
  15. 帧触发出图数:Acquisition Control–>>Acquisition Burst Frame Count;设置为 1 的时候,为单帧触发模式,大于 1 的时候为多帧触发模式。
  16. 触发响应方式:Acquisition Control–>>Trigger Activation,可以选择Rising Edge、FallingEdge、Level High、Level Low、Any Edge。
  17. 帧触发缓存:Acquisition Control–>>Trigger Cache Enable,启用此信号的时候,若第2 个触发信号第1 行图像的曝光结束时间不早于相机当前第1 个触发信号最后1 行的出图时间,则第2 个触发信号正常出图HC软件连接相机使用;若第2 个触发信号第1 行图像的曝光结束时间早于相机当前第1 个触发信号最后1行出图时间,则相机内部会做处理,将第2 个触发信号第1 行图像的曝光开始时间推迟,确保第2 个触发信号第1 行图像的曝光结束时间不早于第1 个触发信号最后1 行的出图时间。若不启用此信号,第二个触发信号直接被过滤掉,不做处理。
  18. 行触发缓存:Acquisition Control–>>Line Trigger Cache Enable
  19. 触发防抖:Digital IO Control–>> Line Debouncer Time;当设置的Debouncer 时间大于触发信号的时间时,则该触发信号被忽略。
  1. 平场矫正(PRNUC)功能
    1) 为什么要对线阵相机进行平场矫正
    线阵相机需要平场矫正(PRNUC)主要是因为获取得图像有异常,如图像边缘亮度与中心亮度不一致情况等,对于现场使用相机获取图像数据有较大影响,故而需要对线阵相机进行平场矫正操作一板情况下有以下原因需要平场矫正:
    (1) 光照不均
    (2) 镜头中心和镜头边缘响应度不一致
    (3) 成像元器件得各像元响应不一致
    (4) 固定的图像背景噪声
    如下图,图像两侧偏暗,中间亮
    在这里插入图片描述
    2) 平场矫正步骤
    (1) 在相机视野内铺一张没有折痕白纸
    (2) 调节相机参数,使图像的灰度值在120-160之间
    (3) 调节镜头,使相机采集的图像尽量模糊
    (4) Shading Selector 选择PRNUC Correction
    (5) Activate Shading 点击Execute
    (6) PRNUC Enable勾选使能
    矫正前后后的效果如下图:
    在这里插入图片描述

这篇关于线扫相机使用教程的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/645921

相关文章

使用Python实现快速搭建本地HTTP服务器

《使用Python实现快速搭建本地HTTP服务器》:本文主要介绍如何使用Python快速搭建本地HTTP服务器,轻松实现一键HTTP文件共享,同时结合二维码技术,让访问更简单,感兴趣的小伙伴可以了... 目录1. 概述2. 快速搭建 HTTP 文件共享服务2.1 核心思路2.2 代码实现2.3 代码解读3.

Elasticsearch 在 Java 中的使用教程

《Elasticsearch在Java中的使用教程》Elasticsearch是一个分布式搜索和分析引擎,基于ApacheLucene构建,能够实现实时数据的存储、搜索、和分析,它广泛应用于全文... 目录1. Elasticsearch 简介2. 环境准备2.1 安装 Elasticsearch2.2 J

使用C#代码在PDF文档中添加、删除和替换图片

《使用C#代码在PDF文档中添加、删除和替换图片》在当今数字化文档处理场景中,动态操作PDF文档中的图像已成为企业级应用开发的核心需求之一,本文将介绍如何在.NET平台使用C#代码在PDF文档中添加、... 目录引言用C#添加图片到PDF文档用C#删除PDF文档中的图片用C#替换PDF文档中的图片引言在当

Linux系统中卸载与安装JDK的详细教程

《Linux系统中卸载与安装JDK的详细教程》本文详细介绍了如何在Linux系统中通过Xshell和Xftp工具连接与传输文件,然后进行JDK的安装与卸载,安装步骤包括连接Linux、传输JDK安装包... 目录1、卸载1.1 linux删除自带的JDK1.2 Linux上卸载自己安装的JDK2、安装2.1

Java中List的contains()方法的使用小结

《Java中List的contains()方法的使用小结》List的contains()方法用于检查列表中是否包含指定的元素,借助equals()方法进行判断,下面就来介绍Java中List的c... 目录详细展开1. 方法签名2. 工作原理3. 使用示例4. 注意事项总结结论:List 的 contain

C#使用SQLite进行大数据量高效处理的代码示例

《C#使用SQLite进行大数据量高效处理的代码示例》在软件开发中,高效处理大数据量是一个常见且具有挑战性的任务,SQLite因其零配置、嵌入式、跨平台的特性,成为许多开发者的首选数据库,本文将深入探... 目录前言准备工作数据实体核心技术批量插入:从乌龟到猎豹的蜕变分页查询:加载百万数据异步处理:拒绝界面

Android中Dialog的使用详解

《Android中Dialog的使用详解》Dialog(对话框)是Android中常用的UI组件,用于临时显示重要信息或获取用户输入,本文给大家介绍Android中Dialog的使用,感兴趣的朋友一起... 目录android中Dialog的使用详解1. 基本Dialog类型1.1 AlertDialog(

Python使用自带的base64库进行base64编码和解码

《Python使用自带的base64库进行base64编码和解码》在Python中,处理数据的编码和解码是数据传输和存储中非常普遍的需求,其中,Base64是一种常用的编码方案,本文我将详细介绍如何使... 目录引言使用python的base64库进行编码和解码编码函数解码函数Base64编码的应用场景注意

使用Sentinel自定义返回和实现区分来源方式

《使用Sentinel自定义返回和实现区分来源方式》:本文主要介绍使用Sentinel自定义返回和实现区分来源方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录Sentinel自定义返回和实现区分来源1. 自定义错误返回2. 实现区分来源总结Sentinel自定

Pandas使用SQLite3实战

《Pandas使用SQLite3实战》本文主要介绍了Pandas使用SQLite3实战,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学... 目录1 环境准备2 从 SQLite3VlfrWQzgt 读取数据到 DataFrame基础用法:读