diff --git a/runtime_data/openalpr.conf b/runtime_data/openalpr.conf index 5058a39..4e0645b 100644 --- a/runtime_data/openalpr.conf +++ b/runtime_data/openalpr.conf @@ -17,6 +17,9 @@ opencl_enabled = 0 multithreading_cores = 1 + +max_plate_angle_degrees = 15 + ocr_min_font_point = 6 ; Minimum OCR confidence percent to consider. diff --git a/src/openalpr/characterregion.cpp b/src/openalpr/characterregion.cpp index aebf90c..55636a5 100644 --- a/src/openalpr/characterregion.cpp +++ b/src/openalpr/characterregion.cpp @@ -75,10 +75,10 @@ CharacterRegion::CharacterRegion(Mat img, Config* config) confidenceDrainers += (5 - charSegmentCount) * 10; int absangle = abs(charAnalysis->topLine.angle); - if (absangle > 10) + if (absangle > config->maxPlateAngleDegrees) confidenceDrainers += 91; else if (absangle > 1) - confidenceDrainers += (10 - absangle) * 5; + confidenceDrainers += (config->maxPlateAngleDegrees - absangle) ; if (confidenceDrainers >= 100) this->confidence=1; diff --git a/src/openalpr/config.cpp b/src/openalpr/config.cpp index f439ac9..3ab1333 100644 --- a/src/openalpr/config.cpp +++ b/src/openalpr/config.cpp @@ -78,6 +78,8 @@ void Config::loadValues(string country) maxPlateWidthPercent = getFloat("common", "max_plate_width_percent", 100); maxPlateHeightPercent = getFloat("common", "max_plate_height_percent", 100); + maxPlateAngleDegrees = getInt("common", "max_plate_angle_degrees", 15); + minPlateSizeWidthPx = getInt(country, "min_plate_size_width_px", 100); minPlateSizeHeightPx = getInt(country, "min_plate_size_height_px", 100); diff --git a/src/openalpr/config.h b/src/openalpr/config.h index 8ea25fe..20fed74 100644 --- a/src/openalpr/config.h +++ b/src/openalpr/config.h @@ -50,6 +50,8 @@ class Config float maxPlateWidthPercent; float maxPlateHeightPercent; + int maxPlateAngleDegrees; + float minPlateSizeWidthPx; float minPlateSizeHeightPx;