您的位置:首页 > 编程语言 > MATLAB

Matlab转C++项目中遇到的问题

2016-01-14 14:51 661 查看
1.MFC中视频流中输出数字

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之间值传递的问题
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: