Ali*_*nez 3 c++ matlab mex memcpy matrix-indexing
我有一个有趣的问题.就是这样; 我试图在mex函数中使用std :: memcpy函数,并在MATLAB中调用那个mex函数;
I2 = b_filter(I);
Run Code Online (Sandbox Code Playgroud)
当我复制整个图像时,效果很好;
plhs[0] = mxCreateDoubleMatrix(mxGetM(plhs[0]), mxGetN(plhs[0]), mxREAL);
memcpy(mxGetPr(plhs[0]), mxGetPr(prhs[0]), sizeof(double) *mxGetM(plhs[0]) * mxGetN(plhs[0]));
Run Code Online (Sandbox Code Playgroud)
但是当我试图复制图像的某些部分时
plhs[0] = mxCreateDoubleMatrix(100, 100, mxREAL);
memcpy(mxGetPr(plhs[0]), mxGetPr(prhs[0]), sizeof(double) * 100 * 100);
Run Code Online (Sandbox Code Playgroud)
它没有给出正确的图像部分,但却给出了无意义的像素值.
那么这里发生了什么?