1.3
liuruoze 11 years ago
parent 6898b2dca3
commit 246c01b6d2

@ -1105,3 +1105,11 @@
总图片数:173张, 未识出图片:5张, 定位率:97.1098%
平均字符差距:0.458333个, 完全匹配数:130张, 完全匹配率:77.381%
总时间:214秒, 平均执行时间:1.23699秒
2015-07-01 19:42:20
总图片数:173张, 未识出图片:5张, 定位率:97.1098%
平均字符差距:0.458333个, 完全匹配数:130张, 完全匹配率:77.381%
总时间:203秒, 平均执行时间:1.17341秒
2015-07-01 21:43:30
总图片数:173张, 未识出图片:5张, 定位率:97.1098%
平均字符差距:0.458333个, 完全匹配数:130张, 完全匹配率:77.381%
总时间:198秒, 平均执行时间:1.14451秒

@ -25,11 +25,8 @@ class CPlateDetect {
public:
CPlateDetect();
//! 车牌检测:车牌定位与判断
int plateDetect(Mat, vector<Mat>&, int index = 0);
//! 深度车牌检测使用颜色与二次Sobel法综合
int plateDetectDeep(Mat src, vector<CPlate>& resultVec,
int plateDetect(Mat src, vector<CPlate>& resultVec,
bool showDetectArea = true, int index = 0);
//! 展示中间的结果

@ -73,11 +73,6 @@ class CPlateLocate {
//! 未使用函数与代码
//! 开始------------
bool sobelJudge(Mat roi);
int deskewOld(Mat src, vector<RotatedRect>& inRects,
vector<RotatedRect>& outRects, vector<Mat>& outMats,
LocateType locateType);
bool verifyCharSizes(Mat r);
//! 结束------------
//! 未使用函数与代码
@ -87,9 +82,6 @@ class CPlateLocate {
//! 车牌的尺寸验证
bool verifySizes(RotatedRect mr);
//! ½á¹û³µÅÆÏÔʾ
Mat showResultMat(Mat src, Size rect_size, Point2f center, int index);
//! 生活模式与工业模式切换
void setLifemode(bool param);

@ -4,7 +4,7 @@
<PropertyGroup Label="UserMacros" />
<PropertyGroup>
<IncludePath>$(OPENCV)\include;$(IncludePath)</IncludePath>
<LibraryPath Condition="'$(Platform)'=='Win32'">$(OPENCV)\x86\vc10\lib;$(LibraryPath)</LibraryPath>
<LibraryPath Condition="'$(Platform)'=='Win32'">$(OPENCV)\x86\vc12\lib;$(LibraryPath)</LibraryPath>
<LibraryPath Condition="'$(Platform)'=='X64'">$(OPENCV)\x64\vc10\lib;$(LibraryPath)</LibraryPath>
<SourcePath>G:\opencv\opencv\sources;$(SourcePath)</SourcePath>
</PropertyGroup>

@ -5,7 +5,7 @@
Namespace where all the C++ EasyPR functionality resides
*/
namespace easypr {
// int iiname=0;
CPlateDetect::CPlateDetect() {
// cout << "CPlateDetect" << endl;
m_plateLocate = new CPlateLocate();
@ -17,34 +17,7 @@ CPlateDetect::CPlateDetect() {
void CPlateDetect::LoadSVM(string s) { m_plateJudge->LoadModel(s.c_str()); }
int CPlateDetect::plateDetect(Mat src, vector<Mat>& resultVec, int index) {
//¿ÉÄÜÊdzµÅƵÄͼ¿é¼¯ºÏ
vector<Mat> matVec;
int resultLo = m_plateLocate->plateLocate(src, matVec);
if (0 != resultLo) return -1;
int resultJu = m_plateJudge->plateJudge(matVec, resultVec);
if (getPDDebug()) {
int size = resultVec.size();
for (int i = 0; i < size; i++) {
Mat img = resultVec[i];
if (1) {
std::stringstream ss;
ss << "resources/image/tmp/plate_judge_result_" << i << ".jpg";
utils::imwrite(ss.str(), img);
}
}
}
if (0 != resultJu) return -2;
return 0;
}
int CPlateDetect::plateDetectDeep(Mat src, vector<CPlate>& resultVec,
int CPlateDetect::plateDetect(Mat src, vector<CPlate>& resultVec,
bool showDetectArea, int index) {
vector<Mat> resultPlates;

File diff suppressed because it is too large Load Diff

@ -18,7 +18,7 @@ int CPlateRecognize::plateRecognize(Mat src, std::vector<string> &licenseVec,
vector<CPlate> plateVec;
// 进行深度定位使用颜色信息与二次Sobel
int resultPD = plateDetectDeep(src, plateVec, getPDDebug(), 0);
int resultPD = plateDetect(src, plateVec, getPDDebug(), 0);
if (resultPD == 0) {
int num = plateVec.size();

@ -93,7 +93,7 @@ int test_plate_detect() {
CPlateDetect pd;
pd.setPDLifemode(true);
int result = pd.plateDetectDeep(src, resultVec);
int result = pd.plateDetect(src, resultVec);
if (result == 0) {
size_t num = resultVec.size();
for (size_t j = 0; j < num; j++) {

Loading…
Cancel
Save