因项目需求,需要在matlab中调用FLIR相机,现把配置过程记录如下。
主要参考文章:
博客《matlab使用usb和gige网口相机》
网址为:https://www.cnblogs.com/sonicmlj/p/7921996.html
博客《matlab摄像头基本操作》
网址为:https://blog.csdn.net/msq19895070/article/details/8019663
和matlab论坛《How do I calculate the packet delay for a GigE Vision camera to prevent dropped frames?》
网址为:https://cn.mathworks.com/matlabcentral/answers/91834-how-do-i-calculate-the-packet-delay-for-a-gige-vision-camera-to-prevent-dropped-frames
一、软硬件说明:
硬件:
笔记本(带以太网端口的)
FLIR相机,系列:BLACKFLY S型号BFLY-PGE-31S4C-C#以后选版本会用到
软件:
matlab R2015a
gige vision toolbox(需要去matlab官方支持下载)
二、配置过程:
1.安装matlab工具包
在matlab窗口输入supportPackageInstaller安装gige vision toolbox.也可以通过下面图片显示,resources——add-ons——Get Hardware Support Packages——install from Internet,再然后在搜索框内搜索gige,安装(这个过程可能需要翻墙)。
2. 配置网卡
打开网络适配器(设置——网络——以太网——更改适配器设置——选择对应网络适配器),右击打开属性,选择配置,——高级——选择接收缓存,值选最大——巨型帧(或者jumbo pocket)选择值为9K(或者9014),——确定,如下图。
(注意:第一个参考博客里说需要设置接受缓存,说是设置为2048,我笔记本最大也就512,只好设置最大了,还有博客里说需要关闭防火墙,我发现我好像没关也能运行)
这就软件配置好了,然后连接硬件,插上相机,就可以做调试了。
三、测试相机
1. 打开matlab,在命令行输入如下指令:
info=imaqhwinfo %获取PC上已安装的图像获取硬件信息,其他具体参数信息可以参看博客《matlab摄像头基本操作》网址前文已给出
%或者执行下面命令也可以查看设备信息,结果如下图
g = gigecam(1)
%下面测试连读图片获取,只能显示图片,无法对图片进行处理
camera = videoInput('gige',1,‘Mono8’);%创建摄像头对象
preview(camera);%摄像头图像采集预览
%下面显示视频,以及采集图像的获取以备处理
vid = videoInput('gige',1,‘Mono8’);%创建摄像头对象
start(vid);
h=figure('NumberTitle','off','Name','视频',... 'MenuBar','none','color','c',... 'Position', [0, 0, 1, 1], 'Visible', 'on'); %新建窗口
set(h,'doublebuffer','on','outerposition',get(0,'screensize'));
h1=axes('Position', [0.02, 0.1, 0.4, 0.8],'Parent',h); %新建显示窗口
hold on;
axis off;
while ishandle(h) %判断是否有效的图像对象句柄
a=getsnapshot (vid); % 捕获图像
flushdata(vid); %清除数据获取引擎的所有数据、置属性SamplesAvailable为0
imshow(a); %显示图像
drawnow; % 实时更新图像
end;
delete(vid);
如果电脑运存够大的,一般可以正常显示一段时间摄像头的获取视频,但是之后可能会报错,显示如下:
gige: Block/frame 12 is being dropped because a lost packet is unable to be resent.There are several possible causes for packets being lost. See the troubleshooting information in the "Configuring GigE Vision Devices" section of the Image Acquisition Toolbox documentation.
解决办法:这时候需要参考matlab论坛《How do I calculate the packet delay for a GigE Vision camera to prevent dropped frames?》(网址前文已给出),论坛里提供了相应的解决办法和代码,按照示例进行更改就可正常播放获取视频了,这里就不再做过多搬运了。
以上是我用matlab调试FLIR相机的过程,现记录一下以作备份。
如果你遇到其他新的问题,欢迎留言讨论学习。