All chinese are stored in etc/, including menu. This is a temporary solution to visual studio's problem. Consider to use English in the future.v1.6alpha
parent
5d3cd897f0
commit
5dd7319481
@ -0,0 +1,6 @@
|
||||
////////////////////////////////////
|
||||
BatchTest Option:
|
||||
1. general_test;
|
||||
2. native_test;
|
||||
3. 返回;
|
||||
////////////////////////////////////
|
@ -0,0 +1,17 @@
|
||||
make_a_choice 请选择一项操作
|
||||
input_error 输入错误,请重新输入
|
||||
|
||||
original_plate 原牌
|
||||
empty_plate 无车牌
|
||||
diff 差距
|
||||
char 字符
|
||||
error_code 错误码
|
||||
summaries 统计参数
|
||||
sum_pictures 总图片数
|
||||
unrecognized 未识出图片
|
||||
locate_rate 定位率
|
||||
diff_average 平均字符差距
|
||||
full_match 完全匹配数
|
||||
full_rate 完全匹配率
|
||||
seconds 总时间
|
||||
seconds_average 平均执行时间
|
@ -0,0 +1,3 @@
|
||||
|
||||
我们EasyPR团队目前有一个5人左右的小组在进行EasyPR后续版本的开发工作。
|
||||
人数已满,暂时不接受应聘信息,谢谢!
|
@ -0,0 +1,11 @@
|
||||
////////////////////////////////////
|
||||
EasyPR Option:
|
||||
1. 测试;
|
||||
2. 批量测试;
|
||||
3. SVM训练;
|
||||
4. ANN训练;
|
||||
5. GDTS生成;
|
||||
6. 开发团队;
|
||||
7. 感谢名单;
|
||||
8. 退出;
|
||||
////////////////////////////////////
|
@ -0,0 +1,31 @@
|
||||
zh_cuan 川
|
||||
zh_gan1 甘
|
||||
zh_hei 黑
|
||||
zh_jin 津
|
||||
zh_liao 辽
|
||||
zh_min 闽
|
||||
zh_qiong 琼
|
||||
zh_sx 晋
|
||||
zh_xin 新
|
||||
zh_yue 粤
|
||||
zh_zhe 浙
|
||||
zh_e 鄂
|
||||
zh_gui 贵
|
||||
zh_hu 沪
|
||||
zh_jing 京
|
||||
zh_lu 鲁
|
||||
zh_ning 宁
|
||||
zh_shan 陕
|
||||
zh_wan 皖
|
||||
zh_yu 豫
|
||||
zh_yun 云
|
||||
zh_gan 赣
|
||||
zh_gui1 桂
|
||||
zh_ji 冀
|
||||
zh_jl 吉
|
||||
zh_meng 蒙
|
||||
zh_qing 青
|
||||
zh_su 苏
|
||||
zh_xiang 湘
|
||||
zh_yu1 渝
|
||||
zh_zang 藏
|
@ -0,0 +1,12 @@
|
||||
////////////////////////////////////
|
||||
EasyPR Test:
|
||||
1. test plate_locate(车牌定位);
|
||||
2. test plate_judge(车牌判断);
|
||||
3. test plate_detect(车牌检测);
|
||||
4. test chars_segment(字符分隔);
|
||||
5. test chars_identify(字符鉴别);
|
||||
6. test chars_recognise(字符识别);
|
||||
7. test plate_recognize(车牌识别);
|
||||
8. test all(测试全部);
|
||||
9. 返回;
|
||||
////////////////////////////////////
|
@ -0,0 +1,27 @@
|
||||
#ifndef EASYPR_UTIL_KV_H_
|
||||
#define EASYPR_UTIL_KV_H_
|
||||
|
||||
#include <map>
|
||||
#include <string>
|
||||
|
||||
namespace easypr {
|
||||
|
||||
class Kv {
|
||||
public:
|
||||
Kv();
|
||||
|
||||
void load(const std::string &file);
|
||||
|
||||
std::string get(const std::string &key);
|
||||
|
||||
void remove(const std::string &key);
|
||||
|
||||
void clear();
|
||||
|
||||
private:
|
||||
std::map<std::string, std::string> data_;
|
||||
};
|
||||
|
||||
}
|
||||
|
||||
#endif // EASYPR_UTIL_KV_H_
|
@ -0,0 +1,70 @@
|
||||
#include "easypr/util/kv.h"
|
||||
#include <fstream>
|
||||
#include <iostream>
|
||||
|
||||
namespace easypr {
|
||||
|
||||
Kv::Kv() { }
|
||||
|
||||
void Kv::load(const std::string &file) {
|
||||
this->clear();
|
||||
|
||||
std::ifstream reader(file);
|
||||
while (!reader.eof()) {
|
||||
std::string line;
|
||||
std::getline(reader, line);
|
||||
if (line.empty()) continue;
|
||||
|
||||
const auto parse = [](const std::string &str) {
|
||||
std::string tmp, key, value;
|
||||
for (size_t i = 0, len = str.length(); i < len; ++i) {
|
||||
const char ch = str[i];
|
||||
if (ch == ' ') {
|
||||
if (i > 0 && str[i - 1] != ' ' && key.empty()) {
|
||||
key = tmp;
|
||||
tmp.clear();
|
||||
}
|
||||
} else {
|
||||
tmp.push_back(ch);
|
||||
}
|
||||
if (i == len - 1) {
|
||||
value = tmp;
|
||||
}
|
||||
}
|
||||
return std::make_pair(key, value);
|
||||
};
|
||||
|
||||
auto kv = parse(line);
|
||||
if (data_.find(kv.first) != data_.end()) {
|
||||
fprintf(stderr,
|
||||
"[Kv] find duplicate: %s = %s , ignore\n",
|
||||
kv.first.c_str(),
|
||||
kv.second.c_str());
|
||||
} else {
|
||||
data_.insert(parse(line));
|
||||
}
|
||||
}
|
||||
reader.close();
|
||||
}
|
||||
|
||||
std::string Kv::get(const std::string &key) {
|
||||
if (data_.find(key) == data_.end()) {
|
||||
std::cerr << "[Kv] cannot find " << key << std::endl;
|
||||
return "";
|
||||
}
|
||||
return data_.at(key);
|
||||
}
|
||||
|
||||
void Kv::remove(const std::string &key) {
|
||||
if (data_.find(key) == data_.end()) {
|
||||
std::cerr << "[Kv] cannot find " << key << std::endl;
|
||||
return;
|
||||
}
|
||||
data_.erase(key);
|
||||
}
|
||||
|
||||
void Kv::clear() {
|
||||
data_.clear();
|
||||
}
|
||||
|
||||
}
|
Loading…
Reference in new issue