解析问题Matricies在c++中墨西哥人文件
2视图(30天)
显示旧的评论
你好~ !
我想创建一个.mex64文件将在一个灰色的图像(或晚RGB)和其他一些参数,并计算和输出向量。
我坚持试图读取图像。我的输出为每个点总是0,不知道我做错了什么。
2013我用Matlab编译器从Visual Studio 2008。
这是我的代码:
无效mexFunction (int nlhs mxArray * plhs [], int nrhs, const mxArray * prhs [])
{
size_t m, n;
双* Img;
int残雪,cy, a, b,θ,numPoints;
/ *检查为适当的数量的参数* /
如果(nrhs ! = 7) {
mexErrMsgIdAndTxt (“MATLAB: SampleEllipse: invalidNumInputs”,
“七输入参数必需的。”);
}其他的如果(nlhs > 1) {
mexErrMsgIdAndTxt (“MATLAB: SampleEllipse: maxlhs”,
“太多的输出参数。”);
}
m = mxGetM (prhs [5]);
n = mxGetN (prhs [5]);
残雪= mxGetScalar (prhs [0]);
cy = mxGetScalar (prhs [1]);
一个= mxGetScalar (prhs [2]);
b = mxGetScalar (prhs [3]);
θ= mxGetScalar (prhs [4]);
Img = mxGetPr (prhs [5]);
numPoints = mxGetScalar (prhs [6]);
printf (“% d % d % d % d % d % d | ptr: % u \ r \ n”残雪cy, a, b,θ,numPoints, Img);
为(int i = 0;我< n;我+ +){
为(int j = 0;j < m;j + +) {
printf (“(% d * % d) + % d = % d: % d \ n”,我,m, j,(我* m) + j, Img[(我* m) + j]);
}
}
}
在matlab,我叫它像(墨西哥人函数SampleEllipse):
testArray = [1 2 3;4 5 6;7 8 9];
SampleEllipse (1、2、3、4、5, testArray, 12)
并得到一个输出:
* 3][0 + 0 = 0:0
[0 * 3 + 1 = 1:0
[0 * 3]+ 2 = 2:0
(1 * 3)+ 0 = 3:0
(1 * 3)+ 1 = 4:0
(1 * 3)+ 2 = 5:0
(2 * 3)+ 0 = 6:0
(2 * 3)+ 1 = 7:0
(2 * 3)+ 2 = 8:0
这让我非常困惑和任何帮助将不胜感激!
谢谢!