我试图获得与MATLAB控制点灰色Grasshopper3(USB3)相机(型号GS3-U3-41C6NIR-C)的图像。 我需要为80秒我在TIFF格式的计算机(灰度)的硬盘上的持续时间和安全图像获得在定义的帧速率(例如12 FPS)的图像。 我有“pointgrey”和安装“WINVIDEO”适配器和Matlab的最新版本和图像采集工具箱。 (如操作系统,我使用Windows 7专业版64位。)
>> imaqhwinfo
ans =
InstalledAdaptors: {'pointgrey' 'winvideo'}
MATLABVersion: '8.3 (R2014a)'
ToolboxName: 'Image Acquisition Toolbox'
ToolboxVersion: '4.7 (R2014a)'
- 如何设置以每秒12帧(或类似的值)的帧速率?
- 我怎样才能获得的图像存储在我的HD为TIFF(灰度)文件? 到目前为止,我只能够存储图像的AVI文件并随后转化为.TIF文件。
谁可以帮我这个事? 你的帮助是非常感谢!
你的摄像头有一组定义的帧率,你可以选择,你不能将其设置为你想要的任何随机帧速率。 你可以找到一组帧速率,并通过使用该功能改变它们getselectedsource()
与您的视频对象作为输入。
src = getselectedsource(vid)
Display Summary for Video Source Object:
Index: SourceName: Selected:
1 'input1' 'on'
结构src
现在包含并控制许多它们之间的网络摄像头属性,帧速率的。 使用功能propinfo()
以查看当前的和可用的帧速率。
propinfo(src,'FrameRate')
ans =
Type: 'string'
Constraint: 'enum'
ConstraintValue: {'30.0000' '15.0000'}
DefaultValue: '30.0000'
ReadOnly: 'whileRunning'
DeviceSpecific: 1
对于我的摄像头我有两个选择,为30或15。帧率要改变帧速率做:
set(src, 'FrameRate','15');
为了测试帧速率,我们可以获取一些图像和记录速度
vid.FramesPerTrigger = 50;
set(src, 'FrameRate','30')
start(vid); [frames, timeStamp] = getdata(vid);
1/mean(diff(timeStamp))
ans =
29.1797
set(src, 'FrameRate','15')
start(vid); [frames, timeStamp] = getdata(vid);
1/mean(diff(timeStamp))
ans =
15.0109
要保存的图像作为.TIFF使用imwrite()
函数而遍历帧和使用sprintf()
以避免覆盖图像。
for ii=1:size(frames,4)
imwrite(frames(:,:,:,ii),sprintf('web%i.tiff',ii));
end
文章来源: Image acquisition in MATLAB at specified frame rate and save images as TIFF files on hard disk