Matlab转C++项目中遇到的问题
2016-01-14 14:51
661 查看
1.MFC中视频流中输出数字
2.修改文件夹名字
3.内存溢出
发现读取matlab数据的过程中由于创建了很多中间变量但是没有释放导致内存溢出
释放的过程:
4.Matlab中保存txt文件,c++中读取文件
5.Matlab和C之间值传递的问题
stringstream ss; ind=(int)singlerecog(img,pmatFile);//函数的返回值,int型 ss<<ind; string text = ss.str(); CvFont font; cvInitFont(&font,CV_FONT_HERSHEY_COMPLEX,1.0,1.0,0,2,8); // cvPoint 为起笔的x,y坐标 cvPutText(img,text.c_str(),cvPoint(0,24),&font,CV_RGB(0,255,0));//在图片中输出字符
2.修改文件夹名字
CString str; GetDlgItem(IDC_User)->GetWindowText(str); CString strSrc = _T(".\\FaceData\\"); CString strDes=strSrc+str; wchar_t* org=L".\\FaceData\\savedimages"; MoveFile(org,strDes);//主要修改名字的语句,也可以用rename,但是输入的参数格式不同
3.内存溢出
发现读取matlab数据的过程中由于创建了很多中间变量但是没有释放导致内存溢出
mxArray *tr_dat = NULL; tr_dat = matGetVariable(pmatFile, "tr_dat"); mxArray *disc_set = NULL; disc_set = matGetVariable(pmatFile, "disc_set"); mxArray *trls = NULL; trls = matGetVariable(pmatFile, "trls"); mxArray *Proj_M = NULL; Proj_M = matGetVariable(pmatFile, "Proj_M"); IplImage *img1 = cvCreateImage(cvGetSize(pImage),IPL_DEPTH_8U,1);
释放的过程:
cvReleaseImage(&img1); mxDestroyArray(tr_dat); mxDestroyArray(disc_set); mxDestroyArray(trls); mxDestroyArray(Proj_M);
4.Matlab中保存txt文件,c++中读取文件
ifstream in("Name.txt"); string s; vector <string> Result; Result.clear(); while(getline(in,s)) { Result.push_back(s); }
fp = fopen('Name.txt','w'); for i =1 : size(nameFolds,1) fprintf(fp, '%s\n', nameFolds{i,1}); end fclose(fp);
5.Matlab和C之间值传递的问题
相关文章推荐
- matlab调用c程序(转载)
- Normal distribution正态分布
- 机器学习-Matlab 编程常用命令速览(Ng-ML-class Octave/Matlab Tutorial)
- Matlab生成M序列的伪随机码
- 对MATLAB读取同一路径下多个txt或mat文件方法探讨
- MATLABtextscan函数中参数delimiter的使用
- MATLAB把pgm格式转换为jpg
- 命令行下运行 Matlab 及 函数
- MATLAB 损失函数画图
- matlab中figure图片大小修改
- matlab恢复默认界面布局
- Java中使用MATLAB作图
- 迪克斯特拉(Dijkstra)算法之MATLAB实现
- Matlab分类器大全
- matlab中安装编译器
- 一个基于Matlab的简单Gui设计
- Matlab中legend的用法
- MATLAB实现将图像转换为素描(简笔画)风格
- matlab/simulink中代数环的问题及解决措施
- C++和MATLAB混合编程-DLL篇