线扫相机使用教程

一.线扫相机的采集原理
在现有的工业 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勾选使能
    矫正前后后的效果如下图:
    在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/348770.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Atlassian 停服 Bitbucket?三步快速迁移至极狐GitLab

之前的文章Jira 母公司全面停服 Server 产品,用户如何迁移至极狐GitLab提到了 Atlassian 将在 2 月 15 日以后停止对 Server 端产品的服务支持,此后用户将无法像之前一样继续使用 Jira、Bitbucket、Bamboo、Confluence 这些产品了。如果用户想要继续使用…

蓝牙----蓝牙消息传输_GATT服务发现

蓝牙消息传输_GATT服务发现 1.主机和从机GATT服务的发现2.通知的使用 1.主机和从机GATT服务的发现 GATT服务的发现由主机执行,一共三个阶段  1.处理交换 MTU 请求和响应,启动对 Simple Service 服务的发现。 if (discState BLE_DISC_STATE_MTU){// MT…

四川思维跳动商务信息咨询有限公司专注抖音电商服务

在当今这个数字化时代,电商服务已经成为企业发展的重要驱动力。四川思维跳动商务信息咨询有限公司作为一家专注于抖音电商服务的公司,以其卓越的服务质量和创新能力,成为了行业的领航者。 四川思维跳动商务信息咨询有限公司自成立以来&#x…

pyqt5+vscode 配置坑笔记

1.conda activate XX 时失败 这样出来的python版本也是错的(总是全局版本) 无法加载文件 D:\Documents\WindowsPowerShell\profile.ps1,因为在此系统上禁止运行脚本 系统设置允许执行脚本解决 无法加载文件WindowsPowerShell\profile.ps1…

leetcode hot100组合

在本题中,是要求返回[1,n]这个数组的长度为k的组合。涉及到排列、组合、棋盘、分割等问题的时候,要考虑利用回溯来进行解决。 回溯和递归类似,也分为三步进行分析 确定递归函数的返回值和参数:一般来说返回值都是void&#xff0c…

互斥锁/读写锁(Linux)

一、互斥锁 临界资源概念: 不能同时访问的资源,比如写文件,只能由一个线程写,同时写会写乱。 比如外设打印机,打印的时候只能由一个程序使用。 外设基本上都是不能共享的资源。 生活中比如卫生间,同一…

微软人工智能办公AI工具 Copilot Pro 11项 Copilot 功能

Copilot(曾用名 Bing Chat 和 Bing Chat Enterprise)在此期间成为了许多用户的日常AI伴侣,并在正式发布后将继续为用户提供AI驱动的网络聊天体验。 微软Copilot官方网址链接:Microsoft Copilot: 你的日常 AI 助手 Copilot详情&am…

香港web3盛会:Unisat确认参加Big Demo Day项目路演

本次“Big Demo Day”将于1月31日举办第十期,是由Zeepr 总冠名,Central Research、Techub News联合主办、数码港、852web3支持举行的大型线下活动。Big Demo Day集结了Web2和Web3行业精英聚焦香港市场。 Unisat确认参加 Big Demo Day 线下活动&#xff0…

14.java集合

文章目录 概念Collection 接口概念示例 Iterator 迭代器基本操作:并发修改异常增强循环遍历数组:遍历集合:遍历字符串:限制 list接口ListIteratorArrayList创建 ArrayList:添加元素:获取元素:修…

Java JVM类加载阶段 双亲委派模式

类加载阶段 加载 将类的字节码载入方法区中,内部采用 C 的 instanceKlass 描述 java 类,它的重要 field 有: _java_mirror 即 java 的类镜像,例如对 String 来说,就是 String.class,作用是把 klass 暴露…

WWDG喂狗

3F 是0111111 40 是1000000 0X7F 127 0X5F 95 127-9532 注意:中断是在0x40,在0x40喂狗则程序不会复位 在0x5F之前喂狗会复位,减小到63以下也会复位 在0x5F与0x3F之间喂狗会继续执行,不会复位 WWDG_HandleTypeDef WWDG_Handler; //窗口看门狗句柄//初始化窗口看门狗…

2024 高级前端面试题之 HTML 「精选篇」

该内容主要整理关于 HTML 的相关面试题,其他内容面试题请移步至 「最新最全的前端面试题集锦」 查看。 HTML模块精选篇 1. 如何理解HTML语义化2. H5的新特性有哪些3. 说一下 HTML5 Drag API4. iframe有那些缺点5. 如何实现浏览器内多个标签页之间的通信6. 简述一下s…

EF core连接数据库的前期完整配置流程-开发环境搭建

EF core连接数据库完整流程-开发环境搭建 前置:.net6 core webapi不勾选任何配置 声明:这里是以两个配置类来做的,一个T_Books表,一个T_Person表 Book:创建属性及类型 BookConfig:对创建的进行属性数据表…

坚持刷题 | 平衡二叉树

文章目录 题目考察点代码实现实现总结对实现进一步改进扩展提问 坚持刷题,老年痴呆追不上我,今天继续二叉树:平衡二叉树 题目 110.平衡二叉树 考察点 递归能力: 能否使用递归来解决问题。树的基本操作:能否正确地访…

【算法练习】leetcode算法题合集之动态规划篇

普通动规系列 LeetCode343. 整数拆分 LeetCode343. 整数拆分 将10的结果存在索引为10的位置上,需要保证数组长度是n1,索引的最大值是n,索引是从0开始的。 n的拆分,可以拆分为i和n-i,当然i可以继续拆分。而且拆分为n-…

Vue基础知识

Vue Vue基础知识 v-bind:动态绑定属性值 Vue 修改&#xff0c;标签内也修改 在methods 中可以定义很多函数 在 data 中可以定义很多变量 v-if / v-show&#xff1a;对符合条件的元素进行展示 v-for:把数据遍历出现在网页中 案例 <!DOCTYPE html><html lang"e…

【论文阅读笔记】Towards Universal Unsupervised Anomaly Detection in Medical Imaging

Towards Universal Unsupervised Anomaly Detection in Medical Imaging arxiv&#xff0c;19 Jan 2024 【开源】 【核心思想】 本文介绍了一种新的无监督异常检测方法—Reversed Auto-Encoders (RA)&#xff0c;旨在提高医学影像中病理检测的准确性和范围。RA通过生成类似健…

C语言关键字

关键字的分类 C语言一共多少个关键字呢&#xff1f;一般的书上&#xff0c;都是32个,但是这个都C90(C89) 的标准。其实 C99 后又新增了5个关键字。不过&#xff0c;目前主流的编译器&#xff0c;对 C99 支持的并不好&#xff0c;默认使用 C90 &#xff0c;即&#xff0c;认为3…

【大数据】Flink 中的数据传输

Flink 中的数据传输 1.基于信用值的流量控制2.任务链接 在运行过程中&#xff0c;应用的任务会持续进行数据交换。TaskManager 负责将数据从发送任务传输至接收任务。它的网络模块在记录传输前会先将它们收集到 缓冲区 中。换言之&#xff0c;记录并非逐个发送的&#xff0c;而…

活字格V9获取图片失败bug,报错404,了解存储路径,已改为批量上传和批量获取

项目场景&#xff1a; 问题描述 原因分析&#xff1a; 解决方案&#xff1a; 完成了批量上传功能&#xff0c;这插件真的很方便 于是写了个批量获取附件的js代码&#xff0c;我真厉害 项目场景&#xff1a; 活字格V9版本获取图片链接Upload 【9.0.103.0】图片上传的存储路…