C++调用matlab时 数组转换成矩阵怎么处理
c++的数据是先行再列 但是matlab是先列再行
本来认为在matlab里转置就可以了 但是好像结果不对
改怎么做呢
//从c++给matlab传数据
const mwSize dims[3]={IMAGE_HEIGHT,IMAGE_WIDTH,3};
mxArray *A=mxCreateNumericArray(3,dims,mxUINT8_CLASS,mxREAL);
unsigned char* pchar=(unsigned char*)mxGetData(A);
for(int i=0;i<dataLength;i++)
{
pchar[i]=lpdata[i];
}
//把结果从matlab传回c++
mxArray *C=mxCreateNumericArray(3,dims,mxUINT8_CLASS,mxREAL);
mlfFaceMatch(1,&C,A); //调用m文件函数
memcpy(lpdata,mxGetPr(C),3*IMAGE_WIDTH*IMAGE_HEIGHT*sizeof(unsigned char));
lpdata是内存中的视频帧数据 IMAGE_HEIGHT和IMAGE_WIDTH是图像高度和宽度
在matlab的代码里我用了转置 但是好像还是不对 视频能正常播放 但是处理的效果不对 麻烦大家给看看 谢谢