From 643d2b933d201d47d56dae20e79e8d185334dc9c Mon Sep 17 00:00:00 2001 From: Matt Hill Date: Sun, 5 Jul 2015 13:18:49 -0400 Subject: [PATCH] Removed nested ifs, replaced with return if invalid --- src/openalpr/licenseplatecandidate.cpp | 94 +++++++++++++------------- 1 file changed, 46 insertions(+), 48 deletions(-) diff --git a/src/openalpr/licenseplatecandidate.cpp b/src/openalpr/licenseplatecandidate.cpp index 661f06b..a3e45b7 100644 --- a/src/openalpr/licenseplatecandidate.cpp +++ b/src/openalpr/licenseplatecandidate.cpp @@ -57,71 +57,69 @@ namespace alpr CharacterAnalysis textAnalysis(pipeline_data); - if (!pipeline_data->disqualified) - { + if (pipeline_data->disqualified) + return; - EdgeFinder edgeFinder(pipeline_data); + EdgeFinder edgeFinder(pipeline_data); - pipeline_data->plate_corners = edgeFinder.findEdgeCorners(); + pipeline_data->plate_corners = edgeFinder.findEdgeCorners(); - if (!pipeline_data->disqualified) - { + if (pipeline_data->disqualified) + return; - timespec startTime; - getTimeMonotonic(&startTime); + timespec startTime; + getTimeMonotonic(&startTime); - Mat originalCrop = pipeline_data->crop_gray; + Mat originalCrop = pipeline_data->crop_gray; - Transformation imgTransform(this->pipeline_data->grayImg, pipeline_data->crop_gray, expandedRegion); + Transformation imgTransform(this->pipeline_data->grayImg, pipeline_data->crop_gray, expandedRegion); - Size cropSize = imgTransform.getCropSize(pipeline_data->plate_corners, - Size(pipeline_data->config->ocrImageWidthPx, pipeline_data->config->ocrImageHeightPx)); - Mat transmtx = imgTransform.getTransformationMatrix(pipeline_data->plate_corners, cropSize); - pipeline_data->crop_gray = imgTransform.crop(cropSize, transmtx); + Size cropSize = imgTransform.getCropSize(pipeline_data->plate_corners, + Size(pipeline_data->config->ocrImageWidthPx, pipeline_data->config->ocrImageHeightPx)); + Mat transmtx = imgTransform.getTransformationMatrix(pipeline_data->plate_corners, cropSize); + pipeline_data->crop_gray = imgTransform.crop(cropSize, transmtx); - if (this->config->debugGeneral) - displayImage(config, "quadrilateral", pipeline_data->crop_gray); + if (this->config->debugGeneral) + displayImage(config, "quadrilateral", pipeline_data->crop_gray); - // Apply a perspective transformation to the TextLine objects - // to match the newly deskewed license plate crop - vector newLines; - for (unsigned int i = 0; i < pipeline_data->textLines.size(); i++) - { - vector textArea = imgTransform.transformSmallPointsToBigImage(pipeline_data->textLines[i].textArea); - vector linePolygon = imgTransform.transformSmallPointsToBigImage(pipeline_data->textLines[i].linePolygon); + // Apply a perspective transformation to the TextLine objects + // to match the newly deskewed license plate crop + vector newLines; + for (unsigned int i = 0; i < pipeline_data->textLines.size(); i++) + { + vector textArea = imgTransform.transformSmallPointsToBigImage(pipeline_data->textLines[i].textArea); + vector linePolygon = imgTransform.transformSmallPointsToBigImage(pipeline_data->textLines[i].linePolygon); - vector textAreaRemapped; - vector linePolygonRemapped; + vector textAreaRemapped; + vector linePolygonRemapped; - textAreaRemapped = imgTransform.remapSmallPointstoCrop(textArea, transmtx); - linePolygonRemapped = imgTransform.remapSmallPointstoCrop(linePolygon, transmtx); - - newLines.push_back(TextLine(textAreaRemapped, linePolygonRemapped, pipeline_data->crop_gray.size())); - } - - pipeline_data->textLines.clear(); - for (unsigned int i = 0; i < newLines.size(); i++) - pipeline_data->textLines.push_back(newLines[i]); - - - - if (config->debugTiming) - { - timespec endTime; - getTimeMonotonic(&endTime); - cout << "deskew Time: " << diffclock(startTime, endTime) << "ms." << endl; - } - - charSegmenter = new CharacterSegmenter(pipeline_data); - - - } + textAreaRemapped = imgTransform.remapSmallPointstoCrop(textArea, transmtx); + linePolygonRemapped = imgTransform.remapSmallPointstoCrop(linePolygon, transmtx); + newLines.push_back(TextLine(textAreaRemapped, linePolygonRemapped, pipeline_data->crop_gray.size())); } + + pipeline_data->textLines.clear(); + for (unsigned int i = 0; i < newLines.size(); i++) + pipeline_data->textLines.push_back(newLines[i]); + + + + if (config->debugTiming) + { + timespec endTime; + getTimeMonotonic(&endTime); + cout << "deskew Time: " << diffclock(startTime, endTime) << "ms." << endl; + } + + charSegmenter = new CharacterSegmenter(pipeline_data); + + } + }