微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何在mex文件MATLAB中调用imresize

如何解决如何在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);
    

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。