首页 / 操作系统 / Linux / matlab下拍照功能的实现
matlab专门用于图像获取的工具箱Image Acquisition Toolbox,并提供了GUI可视化界面、编写简单的照相和监控系统,用于图像获取处理和监控的仿真。videoinput函数:获取外部图像获取硬件资源IDobj=videoinput(adaptorname)imaqhwinfo获取adaptorname:winvideo所有属性,函数列表和说明videoinput对象的属性和函数imaqhelp videoinputFramesPerTrigger,每次触发硬件获得的帧数FramesPerTrigger个帧;TriggerRepeat;再次触发所需要的时间FramesAcquired,一个图像获取硬件所获取的帧总数VideoResolution,图像分辨率getsnapshot,获取图像即拍摄preview/closepreview,预览图像/关闭预览start/stop,启动设备/停止设备拍照实现过程功能:图像显示界面预览凸显功能拍照功能matlab源码:obj=videoinput("winvideo");
set(obj,"TriggerRepeat",inf);
set(obj,"FramesPerTrigger",1); %建立界面
hf=figure("Units","Normalized","Menubar","None","NumberTitle","off","Name","演示拍照系统");
ha=axes("Parent",hf,"Units","Normalized","Position",[.05 .2 .85 .7]);
axis offhb1=uicontrol("Parent",hf,"Units","Normalized",...
"Position",[.25 .05 .2 .1],"String","预览",...
"Callback",...
["objRes=get(obj,""VideoResolution"");"...
"nBands=get(obj,""NumberOfBands"");"...
"hImage=image(zeros(objRes(2),objRes(1),nBands));"...
"preview(obj,hImage);"]);%hImage是为了让拍照在本窗口显示,去掉后就相当于另外生成一个窗口
%当然也可以获得拍照效果,当时操作不方便
hb2=uicontrol("Parent",hf,"Units","Normalized",...
"Position",[.55 .05 .2 .1],"String","拍照",...
"Callback","imwrite(getsnapshot(obj),""in.jpg"")");