void Position_Detect::savefile(vector<vector<Point> > contours, string filepath) {
std::ofstream outFile;
//打开文件
outFile.open(filepath,ios::binary);
for (int i = 0; i < contours.size(); ++i)
{
for (int j = 0; j < contours[i].size(); ++j) {
outFile << contours[i][j];
outFile << "\n";
}
//写入数据
}
//关闭文件
outFile.close();
}
void Position_Detect::readfile(string featurepath, vector<Point> &contourPoints)
{
ifstream ifs;
ifs.open(featurepath, ios::in);
if (!ifs.is_open()) {
cout << "feature files not found ,please input right image to recover!" << endl;
}
string buf;
while (getline(ifs, buf))
{
Point temp;
split(buf, temp);
contourPoints.push_back(temp);
}
//cout << "read success, next compare contour..." << endl;
}
void Position_Detect::split(string point_str, Point &point_inf) {
int comma_index = -1;
//获取逗号索引
for (int i = 0; i < point_str.size(); ++i) {
if (int(point_str[i] == 44)) {
comma_index = i;
break;
}
}
if (comma_index == -1) {
cout << "error data ,need use save_origin_feature to restore !" << endl;
}
point_inf.x = stoi(point_str.substr(1, comma_index - 1));
point_inf.y = stoi(point_str.substr(comma_index + 2, point_str.size() - comma_index - 3));
}