从零开始实现Dalsa线阵相机采图

环境准备

硬件准备

Dalsa相机一只,电源,如需使用编码器触发模块还需要准备增量式编码器输出信号,(AB,ABZ信号均可)。

电源接线:10接电源负极;15接电源正极;

编码器信号线:

1------Line 1+------A+

2------Line 1-------A-

3------Line 2+------B+

4------Line 2-------B-

如果不使用编码器触发,只需接好电源线即可。至于线束中每根线的信号定义请看线束上的标签。

软件准备

Network Configuration Tool:配置相机IP地址;

CamExpert:(版本8.60)采集图像。

Network Configuration Tool:配置相机IP地址

未用过DHCP方式进行IP地址的设置;如果先打开软件再给相机通电,需要点击左下角的按钮Scan

Network,在1的位置才会出现相机,注意选择相机的时候不要选错了。

CamExpert:采集图像

配置好IP后,在Device

Selector里会出现Dalsa的相机,点击相应相机,打开相机成功,可以进行采图了。

开始图像采集

线阵相机顾名思义是每次只采集一行(或几行)像素的长条形成像相机。所以要想得到一张二维的平面图像需要物体与相机有相对运动,多次采集的行图像拼接起来才能形成一张完整的二维图像。

几个关键的设置:

图片高度

相机每次只采集一行,图片高度对应需要采集多少次生成一张图片。

行频的设置

行频可以理解为面阵相机的帧率,只不过线阵相机用行频来表示,相机在FreeRun状态下,其帧率为5K。此值的设置不能超过相机本身的最大拍照频率,同时修改此值时会自动计算此时相机最大的曝光时间,如果现有的曝光时间不能达到此拍摄帧率,会自动修改相机的曝光时间。

曝光时间

曝光时间拍一张照片使用的感光时间,拍摄运动的物体曝光时间不能太长,否则会有拖影,也不能太短,拍不清楚。曝光时间与帧率严重相关,曝光时间变长,帧率会下降。根据帧率计算曝光时间时,实际设置的曝光时间要稍短于根据帧率计算出的曝光时间,因为还要留给相机一点数据处理传输的时间,具体需要留出的余量需要根据不同的相机进行测试。如相机帧率是1000帧,算出的曝光时间为1000us,有的时候不能设置这么满,否则帧率达不到1k,曝光时间设置为950us再试下。Dalsa相机的行频与曝光时间是关联的,可只修改行频,曝光时间交给软件自动设置。

触发方式

相机的触发分两种:分别为帧触发和行触发。一帧是指上面设置的8192*4000,即采集4000行为一帧;行是指4000行中的一行。帧触发是指如何开启一帧的采集,行触发是指如何开启一行的采集。只有帧触发了行触发才有效,否则行触发再多次也采集不到一帧数据(个人理解)。

测试的时候建议使用FreeRun方式,真正使用时候再改为编码器触发。

FreeRun模式

此模式将所有触发都关掉,相机自由运行,自动开始帧触发,行触发按照设置的行频进行采集图像,一帧采满显示图像,同时开启下一帧采集。Single

Frame Trigger和Single Line Trigger 都设置成off即可。

关掉帧触发

关掉行触发

再点击右侧Grab即可看到图像。

帧自由触发,行编码器触发模式

帧触发的设置与上面相同

行触发的设置稍微复杂一点,需要你对编码器的知识有所了解。

行触发的设置

  • Trigger Mode 选择ON,关掉FreeRun,使用触发;

  • Trigger Source选择Rotary Encoder(旋转编码器);

  • Trigger Line Count设置为1,一次触发只拍一行;

  • Rotary Encoder Output Mode 选择position(位置);

  • Rotary Encoder

Direction:指的是A,B两相之间的相位关系,顺时针和逆时针选择一个,相机只在一个运动方向触发拍照,另外一个方向则不拍照;

  • Rotary Encoder Input A:根据实际连接选择,我们是1------Line

1+------A+;2------Line 1-------A-;3------Line

2+------B+;4------Line 2-------B-连接,此处选择Line1

  • SourceRotary Encoder Input B,选择Line2

  • Rotary Encoder Multiplier:倍频,一般设置为1;

  • Rotary Encoder

Divider:分频,要根据实际情况计算,将编码器的频率分频至与拍照频率相同的值时对应的分频系数;

以上就已经将触发设置好了,还需要设置Line1和2的电平类型;

  • Line Selector中选择Line1,电平设置为RS422,再选择Line2,也设置为RS422即可。

此时再点击Grab时必须有编码器信号才能输出图像。

建议将设置保存下来。

  • 保存至本地:File-->Save As

  • 保存至相机:

一些问题及解决办法

采集图片的时候提示Buffer Incomplete

修改Image Timeout值:默认0.7改成10.0。

......

后面看时间再写点镜头校准的方法。20230314

  • 12
    点赞
  • 72
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
DALSA是一家领先的图像传感器制造商,其研发的线阵相机具有广泛的应用领域。对于DALSA线阵相机的命令,可以通过软件开发工具包(SDK)提供的API来实现。 首先,我们需要连接DALSA线阵相机到计算机上。通常,相机会通过USB、GigE或CameraLink等接口与计算机相连。 在编程环境中,我们需要导入DALSA SDK提供的相关库文件。这些库文件包含了与相机通信的函数和方法。 下面是一些常用的DALSA线阵相机命令: 1. 初始化相机:使用相机的唯一标识符,初始化相机对象,为相机准备工作。 2. 设置相机参数:可以设置相机的曝光时间、增益、图像格式等参数,以满足具体应用需求。 3. 获取图像数据:通过调用获取图像的函数,将DALSA相机捕获的图像数据传输到计算机内存中。 4. 图像处理:在计算机上使用图像处理算法对从相机中获取的图像数据进行处理,如去噪、增强、分析等。 5. 控制相机:可以通过命令控制相机的工作模式,如开始、停止采集等。 通过DALSA线阵相机命令,我们可以实现相机的控制和图像处理。这为我们的应用提供了更高的灵活性和可定制性。例如,在工业领域中,我们可以使用DALSA相机来进行产品质量检测,通过命令控制相机的参数和采集模式。同时,我们可以对相机捕获的图像进行处理和分析,以实现高效的自动化生产。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值