当前位置: 首页 > news >正文

【工控】线扫相机小结

背景简介

我目前接触到的线扫相机有两种形式:

无采集卡,数据通过网线传输。
配备采集卡,使用PCIe接口。

第一种形式的数据通过网线传输,速度较慢,因此扫描和生成图像的速度都较慢,参数设置主要集中在相机本身。第二种形式的相机配备采集卡,通常速度更快,但由于相机和采集卡都需要配置,操作相对复杂。

在采集卡中,我遇到过两种连接方式:光口和Camera Link。这两种方式的速度更快,但由于需要配置卡和相机,容易出现配置混乱的情况。这次,我以海康的光口相机为例,介绍一些实际应用中的经验(实战为主,理解不一定正确,请各位斧正!)

基础描述

与面阵相机不同,线扫相机每次只能捕捉一行像素,因此需要移动多次扫描,才能构成完整的一帧图像。线扫相机通常配备编码器,实时反馈被观察物体或相机的移动情况。物体的移动会触发编码器发出脉冲,每个脉冲都会触发相机拍摄一行像素的图像。随着物体继续运动,编码器发出更多的脉冲,线扫相机会生成多行像素的图像,最终形成完整的一帧图像。

上面这对话设计到很多的概念,我们根据海康的一款光口相机,一个个的讲。

关于图像的畸变。

线扫相机经常会遇到,图片被拉长或者压瘪, 如何避免这种情况呢?
首先,一个脉冲的触发,意味着物体移动了相应的距离(物体移动触发编码器旋转产生脉冲)。
如果一个脉冲对应距离的大小和一个像素的高度相等,那么图片就会显示正常,会被被拉长或者压瘪

由于一个脉冲对应的距离通常不可能恰好等于一个像素的高度,线扫相机会提供一个分频器(Frequency Divider)。分频器通常设置编码器为信号源,对编码器的脉冲信号进行分配,以确保一个脉冲对应的移动距离与一个像素的高度相等,从而生成正常比例的图像。
在这里插入图片描述
这里我设置了100的分频,图像几乎就是正常的了。(ps: 这里我设置的是相机的参数,而非采集卡的参数,后面会详细介绍。)

帧扫描,行扫描,帧触发,行触发

首先要意识到,扫描和触发是不同的概念。网络上介绍触发的很多,但是没有谈及到扫描这个概念。
在海康的相机配置中这些 ‘概念’ 就有对应的配置,如果不能分清楚这些概念&#x

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • Linux编程:使用 CSV 与 UnQLite 进行数据存储的比较分析
  • Java中‘==’ 和 equals()的区别
  • GeoScene Pro教程(001):软件功能产品介绍
  • Win11配置Pytorch深度学习环境(GPU版本)
  • 鸿蒙HarmonyOS实战:IPC与RPC设备内进程通信
  • 【ROS2】launch启动文件:基础
  • pyyaml:Python 中的 YAML 处理大师
  • 【数学建模】TOPSIS法(优劣解距离法)
  • JimuReport 积木报表 v1.8.0 版本发布,开源可视化报表
  • fpga图像处理实战-图像旋转
  • ctfhub-web-整数型SQL注入
  • 网站上线流程完全手册:域名、服务器与CDN
  • 牛客周赛 Round 57 ABCDFG
  • python中如何将小数显示为分数
  • 秃姐学AI系列之:NiN + 代码实现
  • ES6指北【2】—— 箭头函数
  • @angular/forms 源码解析之双向绑定
  • “Material Design”设计规范在 ComponentOne For WinForm 的全新尝试!
  • 【每日笔记】【Go学习笔记】2019-01-10 codis proxy处理流程
  • CoolViewPager:即刻刷新,自定义边缘效果颜色,双向自动循环,内置垂直切换效果,想要的都在这里...
  • css选择器
  • eclipse(luna)创建web工程
  • ES2017异步函数现已正式可用
  • IE报vuex requires a Promise polyfill in this browser问题解决
  • JavaScript 是如何工作的:WebRTC 和对等网络的机制!
  • java正则表式的使用
  • Python利用正则抓取网页内容保存到本地
  • Vue.js源码(2):初探List Rendering
  • vue中实现单选
  • 阿里云爬虫风险管理产品商业化,为云端流量保驾护航
  • 译米田引理
  • 在Unity中实现一个简单的消息管理器
  • 这几个编码小技巧将令你 PHP 代码更加简洁
  • 【运维趟坑回忆录】vpc迁移 - 吃螃蟹之路
  • scrapy中间件源码分析及常用中间件大全
  • 通过调用文摘列表API获取文摘
  • !!Dom4j 学习笔记
  • # 安徽锐锋科技IDMS系统简介
  • # 利刃出鞘_Tomcat 核心原理解析(七)
  • #define,static,const,三种常量的区别
  • #我与Java虚拟机的故事#连载07:我放弃了对JVM的进一步学习
  • $.proxy和$.extend
  • (06)Hive——正则表达式
  • (42)STM32——LCD显示屏实验笔记
  • (NSDate) 时间 (time )比较
  • (STM32笔记)九、RCC时钟树与时钟 第二部分
  • (备忘)Java Map 遍历
  • (附源码)ssm码农论坛 毕业设计 231126
  • (力扣题库)跳跃游戏II(c++)
  • (七)c52学习之旅-中断
  • (四)鸿鹄云架构一服务注册中心
  • (转)shell中括号的特殊用法 linux if多条件判断
  • .NET : 在VS2008中计算代码度量值
  • .NET 常见的偏门问题
  • .NET 使用 ILMerge 合并多个程序集,避免引入额外的依赖