从三个摄像头录制视频和应用程序设计师

11视图(30天)
你好,
再次发布更多的标签。
我想创建一个简单的MatLab应用程序使用应用程序设计师。我有三个USB摄像头(叫蚂蚁,职位和地中海)插入我的笔记本电脑有1080 x1920的决议。目标是按记录按钮5秒的视频记录同时从每个相机至少25 fps。
我已发布应用程序,按记录按钮的回调代码如下:
我发现视频记录并保存到当前文件夹,然而,视频的播放速度和持续时间是变量,通常不是5秒。
有时MatLab崩溃和发送一个错误消息,没有足够的物理内存。我的笔记本电脑有16 gb的RAM,然而,在matlab开放以及运行应用程序并使用很多。
我已经试了包装的应用程序是一个独立的. exe使用更少的内存,然而,这似乎并不奏效。这是因为没有MatLab开放,这个应用程序没有一个文件夹来存储输出视频?如果是这样,我怎么能告诉一个独立的应用程序将文件保存到一个特定的文件夹吗?我要添加一个浏览文件夹箱子吗?
的代码是不正确的?我需要设置每个视频对象的各个属性?或一个循环可以用来使代码更简洁吗?
感谢任何帮助。
多谢。
应用程序是这样的:
我的代码的属性和记录按钮回调是:推
属性(访问=私人)
AntCam = videoinput (“winvideo”2);%的描述
PostCam = videoinput (“winvideo”3);%的描述
MedCam = videoinput (“winvideo”4);%的描述
文件名;
日期;
样本;
结束
%按钮推功能:RECORDButton
函数RECORDButtonPushed(应用程序、事件)
% %设置属性为Videoinput AntCam
app.AntCam。超时=正;
app.AntCam。FrameGrabInterval = 1;
app.AntCam。LoggingMode =磁盘和内存的;
app.AntCam。FramesPerTrigger = 1;
app.AntCam。TriggerRepeat =正;
app.AntCam。TimerPeriod = 5;
% %设置属性为Videoinput PostCam
app.PostCam。超时=正;
app.PostCam。FrameGrabInterval = 1;
app.PostCam。LoggingMode =磁盘和内存的;
app.PostCam。FramesPerTrigger = 1;
app.PostCam。TriggerRepeat =正;
app.PostCam。TimerPeriod = 5;
% %设置属性为Videoinput MedCam
app.MedCam。超时=正;
app.MedCam。FrameGrabInterval = 1;
app.MedCam。LoggingMode =磁盘和内存的;
app.MedCam。FramesPerTrigger = 1;
app.MedCam。TriggerRepeat =正;
app.MedCam。TimerPeriod = 5;
% %构造VideoWriter对象并设置磁盘日志属性
vidWriterAnt = VideoWriter(([应用程序。日期、app.Sample app.Filename,“蚁族”]),mpeg - 4的);
vidWriterPost = VideoWriter(([应用程序。日期、app.Sample app.Filename,“职位”]),mpeg - 4的);
vidWriterMed = VideoWriter(([应用程序。日期、app.Sample app.Filename,“地中海”]),mpeg - 4的);
vidWriterAnt。质量= 50;
vidWriterAnt。帧速率= 25;
app.AntCam。DiskLogger = vidWriterAnt;
vidWriterPost。质量= 50;
vidWriterPost。帧速率= 25;
app.PostCam。DiskLogger = vidWriterPost;
vidWriterMed。质量= 50;
vidWriterMed。帧速率= 25;
app.MedCam。DiskLogger = vidWriterMed;
开始(app.AntCam);
开始(app.PostCam);
开始(app.MedCam);
app.AntCam。TimerFcn = {“停止”};
app.PostCam。TimerFcn = {“停止”};
app.MedCam。TimerFcn = {“停止”};
清晰的app.AntCam
清晰的app.PostCam
清晰的app.MedCam
结束
2的评论
吉纳维芙磅
吉纳维芙磅 2021年1月27日
嗨,杰夫,
谢谢你的评论。
我试着上面的第一个相机,您发布的代码,它工作得很好,谢谢。
然后我添加了第二个相机和代码运行,然而,第二个相机视频拍摄,持续7秒,而不是5秒。此外,引发了两个摄像头并不同步。看来第一个镜头前总是触发略第二个。
当添加第三个摄像头,视频记录了从每个设备,然而,MatLab崩溃记者出现在运行应用程序之后并关闭了MatLab。有时,从第二个和第三个摄像头录制视频~ 20秒。然而,第一个摄像头的视频是5秒左右。触发器也有点不同步。
我发现运行代码的脚本而不是一个MatLab应用程序意味着MatLab没有崩溃但与视频时间/同步发生同样的问题。
有没有可能相机正在努力达到设置帧速率,因此,视频的时间被延长,TimerFcn被忽视,来弥补这个损失吗?
非常感谢,

登录置评。

答案(1)

塔蒂阿娜利昂
塔蒂阿娜利昂 2021年9月5日
我有一个错误
未定义的函数“videoinput”“char类型的输入参数。
有人能帮我

类别

找到更多的在启动和关闭帮助中心文件交换

社区寻宝

找到宝藏在MATLAB中央,发现社区如何帮助你!

开始狩猎!