我正在尝试编写一些代码来从uEye相机中获取图像并将它们存储在avi文件中。基本上是时间流逝。这个想法是每10分钟拍摄10张图像。我用一个定时器和一个回调函数编写了一个函数来获取图像并将它们存储在创建的avi文件中。
主要功能如下:
vid = videoinput('winvideo', 1, 'RGB24_2048x2048');
vwObj = VideoWriter('timelapsevideo.avi', 'Uncompressed AVI');
vwObj.FrameRate =1;
open(vwObj);
t = timer('ExecutionMode', 'FixedRate', ...
'Period', 2, 'TasksToExecute',2, ...
'TimerFcn', @timelapse_timer);
start(t);
delete(t);
每10分钟没有为10张照片指定计时器,但这不是我的问题。
回调函数如下所示:
function timelapse_timer(vid,event)%#ok
utilpath = fullfile(matlabroot, 'toolbox', 'imaq', 'imaqdemos', 'helper');
addpath(utilpath);
vid = videoinput('winvideo', 1, 'RGB24_2048x2048');
start(vid);
img=getdata(vid, 1, 'native', 'numeric');
% imwrite(img, 'example.jpeg')
vwObj = vid.UserData;
writeVideo(vwObj, img);
close(vwObj);
end
我可以拍摄一张图像并将其写入以便getdata正常工作。问题是它没有在创建的avi文件中写入它给我下一个错误:
计算定时器'timer-1'的TimerFcn时出错
未定义函数'writeVideo'用于'uint8'类型的输入参数。
我做了一些改变,比如将拍摄的图像转换为灰度但仍然是同样的问题。
提前感谢您的帮助 涓