小编Ali*_*nez的帖子

在mex中调用memcpy函数

我有一个有趣的问题.就是这样; 我试图在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)

它没有给出正确的图像部分,但却给出了无意义的像素值.

那么这里发生了什么?

c++ matlab mex memcpy matrix-indexing

3
推荐指数
1
解决办法
1745
查看次数

标签 统计

c++ ×1

matlab ×1

matrix-indexing ×1

memcpy ×1

mex ×1