| 查看: 317 | 回复: 0 | |||
[求助]
VC中mex程序的图像结构体数据传递问题
|
|
typedef unsigned char ubyte; typedef struct ImageGray ImageGray; struct ImageGray { ulong Width; ulong Height; ubyte *Pixmap; }; void mexFunction( int nlhs, mxArray *plhs[], int nrhs, const mxArray *prhs[] ) { ImageGray *img; double temp; if( nrhs >=1 ) img = getData( &prhs[0] ); else mexErrMsgTxt("No Input...\n" ;mrows = mxGetM(prhs[0]); ncols = mxGetN(prhs[0]); plhs[0] = mxCreateDoubleMatrix(mrows,ncols, mxREAL); temp = (mxArray *)mxGetData(plhs[0]); temp = Gettemplate(img,100); mxfree(img); if (nlhs==0) mxDestroyArray(plhs[0]); return; } ImageGray *getData( const mxArray **prhs ) { ubyte *pr, *data; int index, number_of_dimensions, total_elements, bytes_to_copy; const int *ldims; ImageGray *img; total_elements = mxGetNumberOfElements(*prhs); pr = (ubyte *)mxGetData(*prhs); for ( index = 0; index < total_elements; index++ ){ *(data+index) = *pr++; } img->Pixmap = data;//整个程序编译连接都没问题,matlab调用该程序,每次运行到这里都中止。 img->Height = dims[0]; img->Width = dims[1]; return img; } *(data+index) = *pr++;调试没问题,屏蔽img->Pixmap = data;后,下面这两行照样出问题:img->Height = dims[0];img->Width = dims[1]; 所以,我觉得可能是“img->”箭头指针有问题,但我不知道原因。 |
» 猜你喜欢
AI 太可怕了,写基金时,提出想法,直接生成的文字比自己想得深远,还有科学性
已经有9人回复
有时候真觉得大城市人没有县城人甚至个体户幸福
已经有12人回复
依托企业入选了国家启明计划青年人才。有无高校可以引进的。
已经有11人回复
依托企业入选了国家启明计划青年人才。有无高校可以引进的。
已经有10人回复
同年申请2项不同项目,第1个项目里不写第2个项目的信息,可以吗
已经有9人回复
表哥与省会女结婚,父母去帮带孩子被省会女气回家生重病了
已经有7人回复
天津大学招2026.09的博士生,欢迎大家推荐交流(博导是本人)
已经有9人回复
有院领导为了换新车,用横向课题经费买了俩车
已经有10人回复













;
回复此楼