如何解决在Simulink中将图像传入和传出c ++函数
我试图通过simulink中的函数传递图像。如果我直接将输入链接到输出,则使用连接到输出端口的“到视频显示器”可以正确显示图像。但是,例如,如果我在函数中使用opencv加载图像,则在使用cv :: imshow()进行显示时它可以正确显示,但是在将To Video display连接到输出端口的情况下显示时会损坏:
static void mdlInitializeSizes(Simstruct *S)
{
ssAllowSignalsWithMoreThan2D(S);
int_T dims[3];
DECL_AND_INIT_DimsINFO(inputDimsInfo);
inputDimsInfo.numDims = DYNAMICALLY_SIZED;
inputDimsInfo.width = DYNAMICALLY_SIZED;
dims[0] = 400;
dims[1] = 600;
dims[2] = 3;
inputDimsInfo.dims = dims;
if (!ssSetNumInputPorts(S,NUM_INPUTS)) return;
/* Input Port 0 */
for (int i = 0; i < NUM_INPUTS; ++i) {
inputDimsInfo.width = DYNAMICALLY_SIZED;
ssSetInputPortDimensionInfo(S,&inputDimsInfo);
//ssSetInputPortMatrixDimensions(S,INPUT_0_WIDTH,INPUT_Dims_0_COL);
ssSetInputPortFrameData(S,IN_0_FRAME_BASED);
//ssSetInputPortWidth(S,INPUT_0_WIDTH);
ssSetInputPortDataType(S,SS_UINT8);
ssSetInputPortComplexSignal(S,INPUT_0_COMPLEX);
ssSetInputPortDirectFeedThrough(S,INPUT_0_FeedTHROUGH);
ssSetInputPortrequiredContiguous(S,1); /*direct input signal access*/
}
我尝试使用下面的代码行在行/列专业之间切换,但似乎没有任何作用:
ssSetArrayLayoutForCodeGen(S,SS_COLUMN_MAJOR);
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。