我是一名MATLAB初学者,我想知道如何从我的相机以5秒的间隔获取并保存20张图像。非常感谢你。如何使用MATLAB以定时间隔获取图像?
回答
要获取图像,相机是否附带一些记录的方式来从计算机控制它? MATLAB支持连接到outside libraries。或者您可以按照MatlabDoug的建议购买相应的MATLAB工具箱。
要保存图像,IMWRITE可能是最简单的选择。
重复该动作,一个简单的FOR循环与PAUSE会给你大概你想要的东西很少的工作:
for ctr = 1:20
img = AcquireImage(); % your function goes here
fname = ['Image' num2str(ctr)]; % make a file name
imwrite(img, fname, 'TIFF');
pause(5); % or whatever number suits your needs
end
但是,如果你需要精确,每隔5秒,你就会有潜入TIMER s。这里有一个简单的例子:
function AcquireAndSave
persistent FileNum;
if isempty(FileNum)
FileNum = 1;
end
img = AcquireImage();
fname = ['Image' num2str(FileNum)];
imwrite(img, fname, 'TIFF');
disp(['Just saved image ' fname]);
FileNum = FileNum + 1;
end
>> t = timer('TimerFcn', 'ShowTime', 'Period', 5.0, 'ExecutionMode', 'fixedRate');
>> start(t);
...you should see the disp line from AcquireAndSave repeat every 5 seconds...
>> stop(t);
>> delete(t);
这里是获取一个图像的快速教程http://www.mathworks.com/products/imaq/description5.html你有没有得到这种东西的工作呢?
编辑:
现在,你可以得到一个形象,你想获得二十岁。一个计时器对象或一个简单的for循环就是你所需要的。
Video example of timers in MATLAB
一定要设置 “任务,实行” 场到二十。此外,你应该把你有一张图片的所有代码包装到一个函数中。
我得到那个工作。但它只是一个图像。所以现在我试图以5秒的间隔得到20张图片。非常感谢你! – Veronica 2009-09-24 03:34:07
有几种方法可以解决这个问题,每种方法都有其优点和缺点。根据您迄今发布的信息,我将如何做到这一点:
vid = videoinput('dcam', 1'); % Change for your hardware of course.
vid.FramesPerTrigger = 20;
vid.TriggerRepeat = inf;
triggerconfig(vid, 'manual');
vid.TimerFcn = 'trigger(vid)';
vid.TimerPeriod = 5;
start(vid);
这将每5秒钟获取20张图像,直到您致电STOP。您可以更改TriggerRepeat参数以更改采集发生的次数。
这显然不会对获取后的图像进行任何处理。
首先构建一个视频输入接口
vid = videoinput('winvideo',1,'RGB24_400x300');
你需要调整的最后一位为你的网络摄像头。为了找到摄像头设备(以及除了其他的东西)的列表使用:
imaqhwinfo
下使第一摄像头为对象
a=imaqhwinfo('winvideo',1)
找到支持的视频格式与列表
a.SupportedFormats
然后,您需要启动界面:
start(vid);
preview(vid);
现在你可以做到以下几点:
pics=cell(1,20)
for i=1:20
pause(5);
pics{i}=getsnapshot(vid);
end
或者其他评论家们注意到,你也可以使用间隔Matlab的计时器。
如果您希望以更短的间隔(每秒1次或更多)捕获图像,将网络摄像头视为视频源可能更有用。我已经给this question留下了一个答案,其中列出了实现这一点的方法。
- 1. matlab绘图的设定时间间隔
- 2. 从Matlab中的时钟图像获取时间 - 图像处理
- 3. Android:如何以不同的时间间隔显示图像?
- 4. 的Windows Mobile 6捕获图像指定的时间间隔
- 5. 获取时间间隔
- 6. 如何在matlab中定义epsilon间隔?
- 7. 如何使用MATLAB获取文件夹内的所有图像?
- 8. 如何以一定间隔平移一组图像
- 9. 如何按时间间隔获取日期时间组
- 10. 以特定的时间间隔以
- 11. 用MATLAB获取图像的一部分
- 12. 如何获取两次查询之间的时间间隔?
- 13. 如何使用linspace matlab函数获取图像中所有像素的y值?
- 14. 时间间隔后图像的变化
- 15. 获取残留在定时器的时间间隔在夫特
- 16. 如何使用opencv单击图像时获取相机的曝光时间?
- 17. 如何在使用DKImagePickerController时使用exif数据获取图像?
- 18. 获取时间间隔的计数
- 19. matlab间隔空间
- 20. 是否可以使用Gmail API从一段时间间隔获取gmail?
- 21. 如何使用IHTMLSelectionObject获取图像?
- 22. 如何使用FreeImage获取子图像
- 23. 如何使用simplexml获取图像src
- 24. 我如何使用preg_match_all获取图像
- 25. 如何获取图像,并使用PHP
- 26. 如何使用jQuery获取图像ID?
- 27. 如何把一个时间间隔随机图像变化
- 28. 如何在一段时间间隔后显示图像?
- 29. 通过使用Matlab读取每帧图像并使用Matlab显示图像
- 30. 如何使用$ .ajax()以设定的时间间隔更新Rails partials?
我有图像采集工具箱,但我无法配置如何得到我需要的东西。将尝试您发布的方法。非常感谢你! – Veronica 2009-09-24 03:40:22