Using better interpolation method for deskew. Added timing

This commit is contained in:
Matt Hill
2014-08-21 06:21:46 -04:00
parent 88f1b2854c
commit 9aef5ba92c

View File

@@ -99,6 +99,10 @@ vector<Point2f> LicensePlateCandidate::transformPointsToOriginalImage(Mat bigIma
Mat LicensePlateCandidate::deSkewPlate(Mat inputImage, vector<Point2f> 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<Point2f> 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);