From 682552859ca81484287f30f26c9017a83fa663f3 Mon Sep 17 00:00:00 2001 From: Matt Hill Date: Wed, 29 Jan 2014 14:28:20 -0600 Subject: [PATCH] Fixed a bug in Character segmentation. Was previously comparing height to area rather than height to height. --- src/openalpr/charactersegmenter.cpp | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/src/openalpr/charactersegmenter.cpp b/src/openalpr/charactersegmenter.cpp index 30292ed..d5455b7 100644 --- a/src/openalpr/charactersegmenter.cpp +++ b/src/openalpr/charactersegmenter.cpp @@ -37,7 +37,7 @@ CharacterSegmenter::CharacterSegmenter(Mat img, bool invertedColors, Config* con Mat img_gray(img.size(), CV_8U); cvtColor( img, img_gray, CV_BGR2GRAY ); - //normalize(img_gray, img_gray, 0, 255, CV_MINMAX ); + medianBlur(img_gray, img_gray, 3); if (invertedColors) @@ -46,7 +46,7 @@ CharacterSegmenter::CharacterSegmenter(Mat img, bool invertedColors, Config* con charAnalysis = new CharacterAnalysis(img_gray, config); charAnalysis->analyze(); - + if (this->config->debugCharSegmenter) @@ -288,7 +288,7 @@ vector CharacterSegmenter::getHistogramBoxes(Mat histogram, float avgCharW { if (allBoxes[i].width >= config->segmentationMinBoxWidthPx && allBoxes[i].width <= MAX_SEGMENT_WIDTH && - allBoxes[i].area() > MIN_HISTOGRAM_HEIGHT ) + allBoxes[i].height > MIN_HISTOGRAM_HEIGHT ) { charBoxes.push_back(allBoxes[i]); } @@ -364,9 +364,11 @@ vector CharacterSegmenter::getBestCharBoxes(Mat img, vector charBoxe validBoxes.push_back(allBoxes[boxidx]); } + } + if (rowScore > bestRowScore) { bestRowScore = rowScore;