我需要在Simulink中创建一个块来变形视频流。 我为Simulink的'Interpreted MATLAB Fcn'块创建了这段代码:
function B = deformation(A,tform)
%#codegen
B=imwarp(A,tform);
对我来说,问题是:
我已经测试了静态图像的imwarp函数,并且我已经计算了tform值作为imwarp的输入
是否有方法更新simulink块上的计算tform。他们不应该改变
答案 0 :(得分:1)
在simulink中有3种方法可以使用Matlab函数。
就我个人而言,我既不喜欢1级功能也不喜欢Matlab功能。对于1级s函数,你必须告诉simulink你计划使用哪些函数,类似于include。 解释的Matlab函数非常受限制,因此我建议你在做一些高级的东西后立即使用2级Matlab函数。
另外我建议您使用3维数组而不是结构,图片是x * y * 3数组,您可以在simulink块中使用它。您可以使用setInputDimension获取输入大小并根据您的意愿设置输出大小(2级s函数)。
此外,如果您的问题只是格式结构,您可以编写一个简单的脚本,将结构转换为三维数组,这对于simulink来说没有问题(在这种情况下,您可以使用解释的matlab函数)。
最后:我很确定你不能使用结构在simulink块之间传递数据,除了你读写基础工作区,并且在你的块之间没有真正的信息传递。
我希望这有点帮助。