Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/matlab/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 将图像传入和传出c++;Simulink中的函数_C++_Matlab_Simulink_Opencv3.0_S Function - Fatal编程技术网

C++ 将图像传入和传出c++;Simulink中的函数

C++ 将图像传入和传出c++;Simulink中的函数,c++,matlab,simulink,opencv3.0,s-function,C++,Matlab,Simulink,Opencv3.0,S Function,我试图在simulink中从SF函数传递一个图像。如果我直接将输入链接到输出,则使用连接到输出端口的to视频显示器正确显示图像。但是,例如,如果我在SF函数中使用opencv加载图像,则当使用cv::imshow()显示时,图像会正确显示,但当使用连接到输出端口的to视频显示器显示时,图像会损坏: 很明显,我在如何设置端口方面存在缺陷,但我看不到在哪里: static void mdlInitializeSizes(SimStruct *S) { ssAllowSignalsWithM

我试图在simulink中从SF函数传递一个图像。如果我直接将输入链接到输出,则使用连接到输出端口的to视频显示器正确显示图像。但是,例如,如果我在SF函数中使用opencv加载图像,则当使用cv::imshow()显示时,图像会正确显示,但当使用连接到输出端口的to视频显示器显示时,图像会损坏:

很明显,我在如何设置端口方面存在缺陷,但我看不到在哪里:

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, 0, &inputDimsInfo);
        //ssSetInputPortMatrixDimensions(S, 0, INPUT_0_WIDTH, INPUT_DIMS_0_COL);
        ssSetInputPortFrameData(S, 0, IN_0_FRAME_BASED);
        //ssSetInputPortWidth(S, 0, INPUT_0_WIDTH);
        ssSetInputPortDataType(S, 0, SS_UINT8);
        ssSetInputPortComplexSignal(S, 0, INPUT_0_COMPLEX);
        ssSetInputPortDirectFeedThrough(S, 0, INPUT_0_FEEDTHROUGH);
        ssSetInputPortRequiredContiguous(S, 0, 1); /*direct input signal access*/
    }

您是否尝试过将1D向量作为SF函数的输出?然后,可以将该向量重塑为m*n矩阵,该矩阵可以显示为图像。
ssSetArrayLayoutForCodeGen(S, SS_COLUMN_MAJOR);