MATLAB R2014a代码-通过相机实时显示处理图像

本文介绍了如何使用MATLAB R2014a通过USB3.0相机实时显示和处理图像,包括安装外部支持包、调用相机、设置参数、显示直方图、实时显示以及通过GUI界面实现图像处理操作。
摘要由CSDN通过智能技术生成

如何通过相机实时显示处理图像

1、调用USB接口相机

1.1 安装外部支持包

可以看到,这边有一个很重要的模块,那就是采集图像,所以先介绍一下调用USB接口相机所涉及的前期操作。要接入USB接口相机,得先自己安装外部支持包,过程也不是很难。具体步骤如下:
(1)在Matlab的顶部的工具栏的右下角找到附加功能
(2)点击后选择Get Hardware Support Packages;
(3)然后点击最上面的Install from Internet;
(4)在接下来弹出的界面中选择GenICam InterfaceOS Generic Video InterfaceUSB Webcams,不能一起选,所以一个一个来,最下面也可以修改安装的路径。如果没有Matlab账号或者没有登录Matlab账号的话,会出现log in按钮,可以点击它创建Matlab账号,通过邮箱申请一个,然后安装完毕就可以了。
这边有一个问题,并不是安装好了就可以立马接入相机,matlab似乎得有个反应时间,反正试了很多次之后才成功了。

在这里插入图片描述
安装示意图

1.2 Image Acquisition打开相机

安装完外部支持包之后,可以将相机与电脑相连,然后点击Matlab顶部的应用程序,选择Image Acquisition打开,在弹出的界面的左上方会看到接入的相机的详细信息,包括名称、所使用的适配器和可选择的像素格式,这些信息都是为了写Matlab代码而服务的。选择一种格式,再点击Start Preview就可以看到相机所拍摄的画面了,如下图所示。在这个界面也可以点击左边框出部分的Device Properties来直接设置相机的参数,要注意的是,右下方显示的Matlab代码,可以通过这个来了解一下所要调用的Matlab函数,从而来设置相机的参数,比如帧率。那么,接下来就进行这方面的介绍,直接调用Matlab函数来打开相机摄像画面,并截取图像来进行后续的图像处理操作。

在这里插入图片描述
拍摄画面

2、Matlab代码

2.1 打开相机

Matlab可以通过videoinput函数来创建视频输入对象,调用格式为OBJ=videoinput(ADAPTORNAME,DEVICEID,FORMAT)。其中,第一项由上应设定为’winvideo’,这是适配器的名称,另外还有gentl、gige和matrox等格式,根据相机的具体情况来定;第二项为设备编号,一般笔记本电脑会有自带的摄像头,然后又外接USB接口的相机,所以得分清楚设备编号;第三项为格式,比如说’YUY2_1280x720’,利用win_info=imaqhwinfo(‘winvideo’)就可以得到相机摄像头的ID,然后用win_info.DeviceInfo(1)可以得到相机所支持的像素格式,最后调用相机完整的Matlab代码就是vid=videoinput(‘winvideo’,1,‘Y800_1024x768’)
这边需要的是黑白图像,所以可以通过set(vid,‘ReturnedColorSpace’,‘grayscale’)代码来将图像设置成黑白的,如果需要彩色图像,将grayscale改为rgb即可,然后用preview(vid)打开摄像画面。以上是简单的调用相机的代码,还有更详细的参数的设定,接下来继续介绍。
总的Matlab代码如下:

vid=videoinput('winvideo',1,'Y800_1024x768');%打开basler相机摄像头
set(vid,'ReturnedColorSpace','grayscale');%黑白图像
preview(vid);%预览,打开摄像画面

2.2 参数设定

利用set函数可以设置摄像头获取的图像的属性值,比如可以将TriggerRepeat的值设置为Inf来通过摄像头一直获取图像,调用代码就是set(vid,‘TriggerRepeat’,Inf)。也可以直接使用结构数组的“点”来赋值,比如说设置摄像头获取图像的速度,也就是设置FrameGrabInterval的值,调用代码为vid.FrameGrabInterval=1。设置好视频输入对象后,对源对象进行设置。可以用src=getselectedsource(vid)来得到所选视频源对象的属性。如果需要对单个图像进行处理的话,就用frame=getsnapshot(vid)代码来获取并显示单个图像帧,获取的图像如下图所示。获取图像之后,就可以对图像来进行常规的图像处理操作。

在这里插入图片描述
获取并显示单个图像帧

总的Matlab代码如下:

vid=videoinput('winvideo',1,'Y800_1024x768');%打开basler相机摄像头
set(vid,'ReturnedColorSpace','grayscale');%黑白图像
set(vid,'TriggerRepeat',Inf);%持续获取图像
set(vid,'FramesPerTrigger',
评论 11
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值