如何在mex文件MATLAB中调用imresize

问题描述

|| 我写了下面的代码在mex文件中使用
imresize
函数。
   #include \"mex.h\"

  void mexFunction(int nlhs,mxArray *plhs[],int nrhs,mxArray *prhs[])
  {
mxArray *output[1];
mxArray *input[3];

input[0] = prhs[0];
input[1] = mxCreateDoubleMatrix(1,1,mxCOMPLEX);
double *x = mxGetPr(input[1]);
x[0] = 0.5;

//double *p = mxGetPr(input[1]);
//mexPrintf(\"%f\\n\",p[0]);
input[2] = mxCreateString(\"bilinear\");



mexCallMATLAB(0,NULL,&prhs[0],\"imshow\");
mexCallMATLAB(1,output,3,input,\"imresize\");
mexCallMATLAB(0,&output[0],\"imshow\");    
    }
它给出了一个错误:
Function IMRESIZE expected its second input,SCALE,to be nonzero.
我该如何解决?     

解决方法

因此,只需尝试替换以下代码:
input[1] = mxCreateDoubleMatrix(1,1,mxCOMPLEX);
double *x = mxGetPr(input[1]);
x[0] = 0.5;
用这条线
 input[1]=mxCreateDoubleScalar(0.5);
    

相关问答

错误1:Request method ‘DELETE‘ not supported 错误还原:...
错误1:启动docker镜像时报错:Error response from daemon:...
错误1:private field ‘xxx‘ is never assigned 按Alt...
报错如下,通过源不能下载,最后警告pip需升级版本 Requirem...