工业相机——点阵相机与线阵相机

工业相机

工业相机按照不同的方式分类会有不同的方式,比如按颜色分类:黑白相机和彩色相机;按按照传感器的结构特性可分为面阵相机和线阵相机;按照芯片结构可分为CDD相机和CMOS相机等。这里主要介绍面阵相机和线阵相机的相关知识。
在这里插入图片描述### 【背景引入】

随着全球工业4.0概念的兴起和智能制造的发展,机器视觉技术正快速应用于工业领域,工业视觉应用逐步有引领智能制造的势头。众所周知,视觉应用核心的硬件就是工业相机,而一般工业相机按照像元排列方式分为线阵相机和面阵相机。所以,选择自己适合的相机显得尤为重要,选择相机之前,就要了解相机的相关知识,以帮助我们更好的抉择。

【概念理解】

面阵相机

(该图是一个面阵相机)

面阵相机:是以 “面”为单位来进行图像采集的成像工具,可以在 短时间内曝光、一次性获取完整的目标图像,具有测量图像直观的优势,它实现的是 像素矩阵拍摄。相机拍摄图像中,表现图像细节不是由像素多少决定的,是由分辨率决定的( 图像的细节或者说图像的清晰度由分辨率决定,所以挑选相机 分辨率是一个重要参考指标) <划重点>。而分辨率是由选择的镜头焦距决定的,同一种相机,选用不同焦距的镜头,分辨率就不同( 镜头焦距决定分辨率,所以挑选完相机后, 还要挑选一个适合的镜头是一个重要参考指标) <划重点>。用我能理解的话来说,就是镜头焦距决定拍摄的成像大小,如同放大缩小一般。镜头焦距长的所成的像就大,物体成像范围小(这就好比你用手机拍摄,你觉得远处的人轮廓好看,你的食指和你的中指在屏幕上忍不住逐渐分开,放大物体,靠近你,想要看清细节);镜头焦距短的所成的像小,物体成像范围大(这就好比你用手机拍摄,你觉得远处的人太丑,你的食指和你的中指在屏幕上逐渐靠拢,缩小物体,远离你产生朦胧)。

此图时海康威视的黑白工业线阵相机

(该图是海康威视的黑白工业线阵相机)

线阵相机,顾名思义就是所探测的物体要在一个很长的界面上。线阵相机的传感器 只有一行感光像素,所以线阵相机一般具有非常高的扫描频率和分辨率。 线阵CCD/CMOS的优点是一维像元数可以做得很多,而且像元尺寸比较灵活,行频高,特别适用于一维动态目标的测量。通常在如下情况下 <划重点>,考虑使用线阵相机:

  • [1] 被测视野为细长的带状,多用于滚筒上检测的问题(可以理解为条形图像);
  • [2] 需要极大的视野或极高的精度;

在第二种情况下(需要极大的视野或极高的精度),就需要用激发装置多次激发相机,进行多次拍照,再将所拍下的多幅“条”形图象,合并成一张巨大的图。因此,用线阵型相机,必须用可以支持线阵型相机的采集卡。

【常用场景】

面阵相机:常用二维信息的获取上,包括在面积、形状、尺寸、位置等方面的测量。典型应用领域有一维码、二维码的解码、自动光学检查、模式识别、瑕疵检测、工业质检、文字识别、纹理识别等。

线阵相机:主要应用于工业、医疗、科研与安全领域的图象处理,典型应用领域是检测连续的材料,例如金属、塑料、纸和纤维等。【线阵相机也可以获取二维图像,但必须配备扫描运动,而且为了能确定图像每一像素点在被测件上的对应位置,还必须配以光栅等器件以记录线阵每一扫描行的坐标。】

【Tips:参数了解】

工业相机的主要参数:

  1. 分辨率
  2. 速度(帧频/行频)【实时性】
  3. 噪声
  4. 信噪比
  5. 动态范围
  6. 像元深度
  7. 光谱响应
  8. 光学接口

这里对两个常用参数做个简单的说明:

  • [1] 分辨率是相机的基本参数,指一个像素表示实际物体的大小,由相机所采用的芯片分辨率决定,是芯片靶面片列的像元数量。通常面阵相机的分辨率用水平和垂直分辨率两个数字表示。比如:相机A3B00CG000的分辨率是5472(水平方向)*3648(垂直方向),表示每行的像元数量是5472,有这样的3648行像元,此时这个相机的分辨率大约在2000万像素。在实际采集数据时,相机的分辨率对图像质量有很大的影响。在同样大的景物范围成像时,分辨率越高,细节展示的效果就越明显。
  • [2] 速度(帧频/行频):相机的帧频和行频代表的相机采集图像时的频率,面阵相机的常用单位fps。举个例子:60fps,代表的是每秒中内相机最多采集60帧。线阵相机的常用单位是khz。例如,8khz表示每秒内相机最多采集8000行数据。实际采集图像时,有时候速度也是一个重要指标,比如生产流水线上,质检速度有一定的时间限制时,就需要考虑相机的速度。
  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 2019电赛LED线代码主要是通过控制LED点阵的亮灭实现图形、文字等信息的显示。具体代码如下: #include <Adafruit_NeoPixel.h> #define PIN 6 // LED连接的引脚 #define NUM_LEDS 8 // 线中LED的数量 Adafruit_NeoPixel strip = Adafruit_NeoPixel(NUM_LEDS, PIN, NEO_GRB + NEO_KHZ800); void setup() { strip.begin(); strip.show(); } void loop() { // 点亮所有LED for(int i=0; i<NUM_LEDS; i++) { strip.setPixelColor(i, strip.Color(255, 255, 255)); // 设置颜色为白色 strip.show(); // 显示 delay(100); // 延时100毫秒 } delay(1000); // 延时1秒 // 关闭所有LED for(int i=0; i<NUM_LEDS; i++) { strip.setPixelColor(i, strip.Color(0, 0, 0)); // 设置颜色为黑色 strip.show(); // 显示 delay(100); // 延时100毫秒 } delay(1000); // 延时1秒 } 以上代码使用了Adafruit_NeoPixel库来控制LED线,首先在setup()函数中初始化LED线,并关闭所有LED。然后在loop()函数中,使用for循环点亮所有LED,设置颜色为白色,并延时100毫秒,然后关闭所有LED,设置颜色为黑色,并延时1秒。循环执行以上两个过程,实现LED线的闪烁效果。 以上就是2019电赛LED线代码的基本实现,根据实际需求可以进一步修改代码来实现不同的显示效果。 ### 回答2: 2019电赛LED线代码是一段用来控制LED线显示效果的代码。根据题目描述,我们需要在300字中给出该代码的详细说明。 首先,该代码需要使用某种编程语言编写,常见的语言包括C语言和Python等。在代码开始的地方,我们需要导入相关的库或者头文件,以便能够使用相关的函数和变量。 其次,代码需要定义一些常量和变量。常量包括LED线的行数和列数,以及其他需要使用的常量。变量则包括控制LED亮灭状态的变量,以及其他需要使用的变量。 然后,代码需要实现控制LED线显示效果的逻辑。一种常见的实现方式是使用嵌套循环来遍历LED线的每个像素点,并根据需要设置LED的亮灭状态。具体的逻辑可以根据题目要求进行设计,比如按照规律闪烁、跑马灯效果或者显示特定的图案等。 最后,代码需要设置一个主循环,以便能够持续地更新LED线的显示效果。这个循环可以根据需要进行延时,以控制显示效果的刷新速度。 总结起来,2019电赛LED线代码是一段用来控制LED线显示效果的代码,其主要包括导入相关库和头文件、定义常量和变量、实现控制显示效果的逻辑以及设置主循环和延时等部分。编写代码时,我们需要根据题目要求进行设计,并使用合适的编程语言来实现。 ### 回答3: 对于2019电赛的LED线代码,我们需要注意以下几点。 首先,我们需要定义和初始化引脚。LED线通常使用GPIO引脚控制,因此我们需要定义要使用的引脚,并设置其为输出模式。 接下来,我们需要编写代码来控制LED线的亮灭。LED线通常由许多个LED组成,可以通过循环的方式逐个控制每个LED的亮灭。我们可以使用一个数组来存储每个LED的引脚号,并通过遍历数组来控制每个LED的状态。 然后,我们需要设计算法来控制LED线显示不同的图案。可以通过编写判断语句来控制LED的亮灭,从而呈现出不同的图案。也可以使用位运算来实现更加高效的图案显示。 最后,需要在主循环中不断更新LED线的显示,以实现图案的连续流动或切换。可以使用延时函数来控制每个图案的显示时间,或通过外部事件触发来切换图案。 总之,2019电赛的LED线代码需要定义和初始化引脚、编写亮灭控制代码、设计图案显示算法,并在主循环中持续更新LED线的显示。这样才能实现LED线的功能。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值