【发布时间】:2015-11-07 20:44:00
【问题描述】:
我正在尝试将系统对象用于我生成的 matlab 代码 (.mex)
这里是函数。
function [ ] = filereaderTest( videofile )
fileReader = vision.VideoFileReader(videofile);
while ~isDone(fileReader)
step(fileReader);
% do something
end
release(fileReader);
end
当我尝试 codegen filereaderTest -args videofile 时,会发生错误。 它说“无法计算构造函数参数 #1 的常量值。要生成代码,系统对象构造函数的所有参数都应该是常量。...”
要使用 VideoFileReader,必须将文件名传递给其构造函数。 所以,这是我的问题:有什么方法可以将此函数用于任何文件?例如:
filereaderTest.mex(video1);
filereaderTest.mex(video2); % video1 and video2 are different
【问题讨论】:
-
正如@Daniel 所说,您无法在编译后更改视频文件。如果您有两个视频文件并内联文件的名称,则需要两个对象。此外,如果您只编译视频文件阅读器,您也不会获得太多速度,因为它们涉及文件读取操作。最好直接使用 MATLAB 中的对象而不是 mex 文件。
标签: matlab matlab-cvst codegen