基本信息
源码名称:训练SVM分类器.zip
源码大小:7.48M
文件格式:.zip
开发语言:C/C++
更新时间:2019-03-18
友情提示:(无需注册或充值,赞助后即可获取资源下载链接)
嘿,亲!知识可是无价之宝呢,但咱这精心整理的资料也耗费了不少心血呀。小小地破费一下,绝对物超所值哦!如有下载和支付问题,请联系我们QQ(微信同号):78630559
本次赞助数额为: 2 元×
微信扫码支付:2 元
×
请留下您的邮箱,我们将在2小时内将文件发到您的邮箱
源码介绍
程序一:修改文件名的程序,可以用来批处理文件将文件名修改为数字命名并写到文本文件中 程序二:SVM训练程序。
程序一:修改文件名的程序,可以用来批处理文件将文件名修改为数字命名并写到文本文件中 程序二:SVM训练程序。
#include "ChangeSamplePath.h"
#include <io.h>
#include <iostream>
int ChangeSamplePath::_name_length = 8;
ChangeSamplePath::ChangeSamplePath()
{
}
ChangeSamplePath::ChangeSamplePath(std::string path) :_main_path(path)
{
initial();
}
ChangeSamplePath::~ChangeSamplePath()
{
_neg_out.close();
_pos_out.close();
}
inline void ChangeSamplePath::initial()
{
_neg_path = _main_path "\\neg";
_pos_path = _main_path "\\pos";
_neg_txt_path = _main_path "\\neg.txt";
_pos_txt_path = _main_path "\\pos.txt";
_neg_out.open(_neg_txt_path.c_str(), std::ios_base::out);
_ASSERT(_neg_out.is_open());
_pos_out.open(_pos_txt_path.c_str(), std::ios_base::out);
if (!_pos_out.is_open()) _neg_out.close();
_ASSERT(_pos_out.is_open());
}
void ChangeSamplePath::setPath(std::string path)
{
_main_path = path;
initial();
}
void ChangeSamplePath::changeFileName(std::ofstream& out, std::string path)
{
long handler;
_finddata_t file_finder;
std::string file_name = path "\\*.*";
_ASSERT((handler = _findfirst(file_name.c_str(), &file_finder)) != -1);
do{
if (file_finder.attrib & _A_ARCH)
{
std::string old_file_name(file_finder.name);
int dot_index = old_file_name.find('.');
std::string new_file_name = old_file_name.substr(0, dot_index) "temp" old_file_name.substr(dot_index, old_file_name.length());
old_file_name = path "\\" old_file_name;
new_file_name = path "\\" new_file_name;
rename(old_file_name.c_str(), new_file_name.c_str());
}
} while (_findnext(handler, &file_finder) == 0);
_findclose(handler);
_ASSERT((handler = _findfirst(file_name.c_str(), &file_finder)) != -1);
int count = 0;
do{
if (file_finder.attrib & _A_ARCH)
{
count ;
std::string old_file_name(file_finder.name);
int dot_index = old_file_name.find('.');
std::string new_file_name = generateName(count) old_file_name.substr(dot_index, old_file_name.length());
old_file_name = path "\\" old_file_name;
new_file_name = path "\\" new_file_name;
rename(old_file_name.c_str(), new_file_name.c_str());
out << new_file_name << std::endl;
}
} while (_findnext(handler, &file_finder) == 0);
_findclose(handler);
}
void ChangeSamplePath::doChange()
{
//neg_samples:
changeFileName(_neg_out, _neg_path);
//pos_samples:
changeFileName(_pos_out, _pos_path);
}
std::string ChangeSamplePath::generateName(int num)
{
char* name = new char[_name_length 1];
int count = 0;
do{
count ;
name[_name_length - count] = num % 10 '0';
num /= 10;
} while (num != 0);
for (int i = 0; i < _name_length - count; i)
{
name[i] = '0';
}
name[_name_length] = '\0';
std::string new_name(name);
delete name;
return new_name;
}