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

环境准备

硬件准备

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

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

编码器信号线:

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

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

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

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

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

从零开始实现Dalsa线阵相机采图_第1张图片

软件准备

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

从零开始实现Dalsa线阵相机采图_第2张图片

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

从零开始实现Dalsa线阵相机采图_第3张图片

Network Configuration Tool:配置相机IP地址

从零开始实现Dalsa线阵相机采图_第4张图片

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

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

CamExpert:采集图像

从零开始实现Dalsa线阵相机采图_第5张图片

配置好IP后,在Device

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

开始图像采集

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

几个关键的设置:

图片高度

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

从零开始实现Dalsa线阵相机采图_第6张图片

行频的设置

从零开始实现Dalsa线阵相机采图_第7张图片

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

曝光时间

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

从零开始实现Dalsa线阵相机采图_第8张图片

触发方式

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

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

FreeRun模式

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

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

从零开始实现Dalsa线阵相机采图_第9张图片

关掉帧触发

从零开始实现Dalsa线阵相机采图_第10张图片

关掉行触发

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

从零开始实现Dalsa线阵相机采图_第11张图片

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

从零开始实现Dalsa线阵相机采图_第12张图片

帧触发的设置与上面相同

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

从零开始实现Dalsa线阵相机采图_第13张图片

行触发的设置

  • 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

从零开始实现Dalsa线阵相机采图_第14张图片

  • 保存至相机:

从零开始实现Dalsa线阵相机采图_第15张图片

一些问题及解决办法

采集图片的时候提示Buffer Incomplete

从零开始实现Dalsa线阵相机采图_第16张图片

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

从零开始实现Dalsa线阵相机采图_第17张图片

......

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

你可能感兴趣的:(Dalsa线阵相机)