Fixed plate_recognize.

v1.6alpha
Micooz 10 years ago
parent 9e4b6eb71b
commit 311a11b9e3

@ -33,7 +33,6 @@ class CPlateRecognize : public CPlateDetect, public CCharsRecognise {
//! 是否开启调试模式 //! 是否开启调试模式
inline void setDebug(bool param) { inline void setDebug(bool param) {
CPlateDetect::setPDDebug(param); CPlateDetect::setPDDebug(param);
CCharsRecognise::setCRDebug(param);
} }
}; };

@ -7,15 +7,15 @@ CPlateRecognize::CPlateRecognize() {
} }
// !车牌识别模块 // !车牌识别模块
int CPlateRecognize::plateRecognize(Mat src, std::vector<string> &licenseVec) { int CPlateRecognize::plateRecognize(Mat src, std::vector<std::string> &licenseVec) {
// 车牌方块集合 // 车牌方块集合
vector<CPlate> plateVec; std::vector<CPlate> plateVec;
// 进行深度定位使用颜色信息与二次Sobel // 进行深度定位使用颜色信息与二次Sobel
int resultPD = plateDetect(src, plateVec, getPDDebug(), 0); int resultPD = plateDetect(src, plateVec, getPDDebug(), 0);
if (resultPD == 0) { if (resultPD == 0) {
int num = plateVec.size(); size_t num = plateVec.size();
int index = 0; int index = 0;
//依次识别每个车牌内的符号 //依次识别每个车牌内的符号
@ -24,20 +24,17 @@ int CPlateRecognize::plateRecognize(Mat src, std::vector<string> &licenseVec) {
Mat plate = item.getPlateMat(); Mat plate = item.getPlateMat();
//获取车牌颜色 //获取车牌颜色
string plateType = getPlateColor(plate); std::string plateType = getPlateColor(plate);
//获取车牌号 //获取车牌号
string plateIdentify = ""; std::string license = charsRecognise(plate);
int resultCR = charsRecognise(plate, plateIdentify); std::string full_license = plateType + ":" + license;
if (resultCR == 0) { licenseVec.push_back(full_license);
string license = plateType + ":" + plateIdentify;
licenseVec.push_back(license);
}
} }
//完整识别过程到此结束 //完整识别过程到此结束
//如果是Debug模式则还需要将定位的图片显示在原图左上角 //如果是Debug模式则还需要将定位的图片显示在原图左上角
if (getPDDebug() == true) { if (getPDDebug()) {
Mat result; Mat result;
src.copyTo(result); src.copyTo(result);

Loading…
Cancel
Save