69
807
2402
初级工程师
使用特权
1978
1万
5万
版主
getselectedsource imaqfind isvalid peekdata getdata imaqmontage 查询USB2.0Camera 的具体参数 给我们一个摄像头我们必须知道他的相关参数,才可能进行我们的编程下。当然我们可以查询商家手册,但是那个累不累人呀。 Matlab的图像获取工具箱为我提供了imaqhwinfo(),来获取PC上以安装的图像获取硬件信息 没有输入参数时,返回一个结构体, 它包含了系统中存在的适配器和Matlab相关的版本信息(第一次我们一般使用这个)>> info=imaqhwinfoinfo = InstalledAdaptors: {'coreco' 'winvideo'}%这里可以看到我的PC上安装了两个适配器 MATLABVersion: '7.6 (R2008a)' ToolboxName: 'Image Acquisition Toolbox' ToolboxVersion: '3.1 (R2008a)' 复制代码 有输入参数的时候,返回一个结构体,包含了指定的适配器的数据信息>> win_info=imaqhwinfo('winvideo')%我们看看第二适配器的具体参数win_info = AdaptorDllName: [1x81 char]%适配器dll文件绝对路径 AdaptorDllVersion: '3.1 (R2008a)'%适配器dll文件版本 AdaptorName: 'winvideo'%适配器名称 DeviceIDs: {[1]}%设备ID号,这个我们经常需要用到 DeviceInfo: [1x1 struct]%设备信息,这里主要是图像获取设备的一些参数,比较重要%====================下面我们了解下,这个图像获取设备到底有哪些的详细信息吧====================>> win_info.DeviceIDsans = [1]>> dev_win_info=win_info.DeviceInfodev_win_info = DefaultFormat: 'RGB24_320x240'%获取图片的默认格式 DeviceFileSupported: 0 DeviceName: 'USB PC CAMERA P227'%设备名称 DeviceID: 1%设备号 ObjectConstructor: 'videoinput('winvideo', 1)'%对象构建方式,这个绝大部分都是一样的 SupportedFormats: {1x12 cell}%获取的图像支持格式,一般都有好多种,上面的DefaultFormat只是默认格式而已%==================================看看图像获取设备支持的图像格式==================================>> dev_win_info.SupportedFormats%可以看到我的PC上的摄像头支持下面12中图片格式ans = Columns 1 through 5 'I420_160x120' 'I420_176x144' 'I420_320x240' 'I420_352x288' 'I420_640x480' Columns 6 through 9 'RGB24_1280x960' 'RGB24_160x120' 'RGB24_176x144' 'RGB24_320x240' Columns 10 through 12 'RGB24_352x288' 'RGB24_640x480' 'RGB24_800x600' 复制代码 视频预览、采集和保存 (1)创建视频输入对象 obj = videoinput(adaptorname,deviceID,format) adaptorname:适配器名称,首次可以使用不带参数的imaqhwinfo函数获取 deviceID:设备ID号,首次可以通过imaqhwinfo函数获取 format:视频采集格式,可以通过DeviceInfo的SupportedFormats获取,不填写则使用默认格式>> obj = videoinput('winvideo',1,'RGB24_320x240')%这里我们使用默认的视频采集格式Summary of Video Input Object Using 'USB PC CAMERA P227'. Acquisition Source(s): input1 is available. Acquisition Parameters: 'input1' is the current selected source. 10 frames per trigger using the selected source. 'RGB24_320x240' video data to be logged upon START. Grabbing first of every 1 frame(s). Log data to 'memory' on trigger. Trigger Parameters: 1 'immediate' trigger(s) on START. Status: Waiting for START. 0 frames acquired since starting. 0 frames available for GETDATA. 复制代码 (2)打开视频预览窗口 himage=preview(obj,himage) obj:视频采集对象 himage:视频预览窗口对应的句柄,也就是说在指定的句柄对象中预览视频,该参数可以空缺 至于预览窗口的关闭和停止可以使用colsepreview和stoppreview函数vidRes = get(obj, 'VideoResolution');nBands = get(obj, 'NumberOfBands');figure()%指定预览窗体显示的figureaxes()%指定预览窗口显示的坐标系hImage = image( zeros(vidRes(2), vidRes(1), nBands) );preview(obj, hImage); 复制代码 (3)图像捕捉、显示和保存%frame是H×W×B的矩阵。H图像高度,由ROIPosition指定;w图像宽度,由ROIPosition指定;B索线个数,由NumberOfBands指定frame = getsnapshot(obj);%获取视频的一帧imshow(frame);%显示获取那一帧imwrite(frame,'snap.jpg','jpg');
发表回复 本版积分规则 回帖后跳转到最后一页
等级类勋章
发帖类勋章
时间类勋章
人才类勋章
4
扫码关注 21ic 官方微信
扫码关注嵌入式微处理器
扫码关注21ic项目外包
扫码关注21ic视频号
扫码关注21ic抖音号
本站介绍 | 申请友情链接 | 欢迎投稿 | 隐私声明 | 广告业务 | 网站地图 | 联系我们 | 诚聘英才 | 论坛帮助
京公网安备 11010802024343号