资源简介
如果你从我的这篇博客http://blog.csdn.net/j56754gefge/article/details/40708679里下载了DPM目标检测代码,它所使用的模型文件是保存在txt里的,而MATLAB训练出来的模型是mat文件,该函数提供将MATLAB模型保存为txt文件的m函数。
代码片段和文件信息
#include “fun_declaration.h“
inline
void yuCheck( bool val )
{
if( !val ){
printf(“Check failure!\n“);
throw runtime_error(““);
}
}
inline
ifstream& operator>>( ifstream &ifs int &val )
{
// infinite numbers can be written into file with “inf“ markup( both in matlab and in c++ )
// but when reading from the file the “inf“ markup is not recognized as a number
string tmpS;
ifs>>tmpS;
if( tmpS==“Inf“ || tmpS==“inf“ )
val = INT_INF;
else if( tmpS==“-Inf“ || tmpS==“-inf“ )
val = -INT_INF;
else
val = (int)atoi( tmpS.c_str() );
return ifs;
}
inline
ifstream& operator>>( ifstream &ifs float &val )
{
string tmpS;
ifs>>tmpS;
if( tmpS==“Inf“ || tmpS==“inf“ )
val = FLOAT_INF;
else if( tmpS==“-Inf“ || tmpS==“-inf“ )
val = -FLOAT_INF;
else
val = (float)atof( tmpS.c_str() );
return ifs;
}
void loadModel( const string FileName MODEL &model )
// 从文件中加载model
{
ifstream MF( FileName.c_str() );
if( !MF ){
cout<<“Cannot open model file!“< throw runtime_error(““);
}
string title tmpS;
int Sz tmp;
// class
MF>>title;
yuCheck(title==“class“);
MF>>model.Class;
// year
MF>>title;
yuCheck(title==“year“);
MF>>model.year;
// note
MF>>title;
yuCheck(title==“note“);
MF>>model.note;
// filters
MF>>title;
yuCheck(title==“filters“);
MF>>Sz;
model.filters.resize( Sz );
for( int i=0; i MODEL::FILTERS F;
MF>>tmpS;
MF>>title;
yuCheck(title==“blocklabel“);
MF>>F.blocklabel;
MF>>title;
yuCheck(title==“size“);
MF>>F.size[0]>>F.size[1];
MF>>title;
yuCheck(title==“flip“);
MF>>tmp;
F.flip = (tmp!=0);
MF>>title;
yuCheck(title==“symbol“);
MF>>F.symbol;
// -1
F.blocklabel--;
F.symbol--;
model.filters[i] = F;
}
// rules
MF>>title;
yuCheck(title==“rules“);
MF>>Sz;
model.rules.resize( Sz );
for( int i=0; i MF>>tmpS;
MF>>Sz;
model.rules[i].resize( Sz );
for( int j=0; j MODEL::RULES R;
MF>>tmpS;
MF>>title;
yuCheck(title==“type“);
MF>>R.type;
MF>>title;
yuCheck(title==“lhs“);
MF>>Sz;
R.lhs.resize( Sz );
for( int k=0; k MF>>R.lhs[k];
MF>>title;
yuCheck(title==“rhs“);
MF>>Sz;
R.rhs.resize( Sz );
for( int k=0; k MF>>R.rhs[k];
MF>>title;
yuCheck(title==“detwindow“);
MF>>R.detwindow[0]>>R.detwindow[1];
MF>>title;
yuCheck(title==“shiftwindow“);
MF>>R.shiftwindow[0]>>R.shiftwindow[1];
MF>>title;
yuCheck(title==“i“);
MF>>R.i;
MF>>title;
yuCheck(title==“anchor“);
MF>>Sz;
R.anchor.resize( Sz );
for( int k=0; k MF>>tmp;
yuCheck(tmp==k+1);
MF>>R.anchor[k][0]>>R.anchor[k][1]>>R.anchor[k][2];
}
MF>>title;
yuCheck(title==“offset.blocklabel“);
MF>>R.offset.blocklabel
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 7443 2013-06-01 20:34 loadModel.cpp
文件 5332 2013-10-24 13:01 saveModel.m
- 上一篇:MATLAB遗传算法工具箱
- 下一篇:Prim法求最小生成树
相关资源
- 层次聚类MATLAB程序.txt
- 字符串+数据混合文件txt等的matlab读取
- Matlab学习视频.txt
- writetxt.m
- Matlab2018aMacISO.txt
- MATLAB2019A破解版百度云链接(已亲测
- matlab中.mat数据格式转换为txt格式
- matlab中将运算结果保存为excel或txt文件
- matlab 显示txt数据图片
- Matlab2010b的license.txt
- 基于Matlab的六自由度搬运机器人建模
- 基于Matlab的IIR高通、带通、低通和带
- 零基础快速入门Matlab神经网络.txt
- 批量转换mat文件为txt文档
- MATLABR2016bMac破解版.txt
- 窄带波束形成.txt
- 利用matlab将风场nc文件读取成txt文件
- 多个TXt文件导入到Excel表格中内含Ex
- matlab提取多数据txt文件
- 混合整数规划问题matlab仿真代码.txt
- 基于MATLAB生成孔隙网络结构.txt
- 波形发生并生成十进制和二进制的T
- 滑动平均值求解Matlab程序).txt
- MATLABR2016bWindows.txt
- 基于Matlab的主动轮廓分割资料.txt
- 基于Matlab的UR5六轴机器人数值解法与
- 通过matlab读取同一路径下多个txt或者
- 用matlab读取txt文件然后画图
- matlab2019a.txt
- ISM程序MATLAB.txt
评论
共有 条评论