From 9aef5ba92c8449443f51b2554e059be51383804c Mon Sep 17 00:00:00 2001 From: Matt Hill Date: Thu, 21 Aug 2014 06:21:46 -0400 Subject: [PATCH] Using better interpolation method for deskew. Added timing --- src/openalpr/licenseplatecandidate.cpp | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/src/openalpr/licenseplatecandidate.cpp b/src/openalpr/licenseplatecandidate.cpp index 8058a0f..15e998e 100644 --- a/src/openalpr/licenseplatecandidate.cpp +++ b/src/openalpr/licenseplatecandidate.cpp @@ -99,6 +99,10 @@ vector LicensePlateCandidate::transformPointsToOriginalImage(Mat bigIma Mat LicensePlateCandidate::deSkewPlate(Mat inputImage, vector corners) { + + timespec startTime; + getTime(&startTime); + // Figure out the appoximate width/height of the license plate region, so we can maintain the aspect ratio. LineSegment leftEdge(round(corners[3].x), round(corners[3].y), round(corners[0].x), round(corners[0].y)); LineSegment rightEdge(round(corners[2].x), round(corners[2].y), round(corners[1].x), round(corners[1].y)); @@ -130,8 +134,15 @@ Mat LicensePlateCandidate::deSkewPlate(Mat inputImage, vector corners) Mat transmtx = getPerspectiveTransform(corners, quad_pts); // Apply perspective transformation - warpPerspective(inputImage, deskewed, transmtx, deskewed.size()); + warpPerspective(inputImage, deskewed, transmtx, deskewed.size(), INTER_CUBIC); + if (config->debugTiming) + { + timespec endTime; + getTime(&endTime); + cout << "deskew Time: " << diffclock(startTime, endTime) << "ms." << endl; + } + if (this->config->debugGeneral) displayImage(config, "quadrilateral", deskewed);