From e3217d28b8b0c8550f094a7a0ba3d2393042b8cb Mon Sep 17 00:00:00 2001 From: Andrey Golovizin Date: Wed, 13 Aug 2014 19:53:29 +0200 Subject: [PATCH] Make baseline be exactly _below_ the letter. The letter now "sits" on the baseline. This is to make indexing more convenient. --- pixelocr/gui/pageview.py | 2 +- pixelocr/page.py | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/pixelocr/gui/pageview.py b/pixelocr/gui/pageview.py index 49baa2f..50b02fc 100644 --- a/pixelocr/gui/pageview.py +++ b/pixelocr/gui/pageview.py @@ -68,7 +68,7 @@ class PageScene(QGraphicsScene): for letter in word: if not letter.image.isspace: self.addRect(letter.x1, letter.y1, letter.width - 1, letter.height - 1, letterPen, letterBrush) - self.addLine(line.x1, line.y1 + line.baseline, line.x2, line.y1 + line.baseline, linePen) + self.addLine(line.x1, line.y1 + line.baseline, line.x2, line.y1 + line.baseline - 1, linePen) # self.addRect(line.x1, line.y1, line.width, line.height, Qt.red) def addPage(self, page): diff --git a/pixelocr/page.py b/pixelocr/page.py index 1d215c2..d77dd9d 100644 --- a/pixelocr/page.py +++ b/pixelocr/page.py @@ -92,7 +92,7 @@ class Line(PageObject): """Detect baseline height, relative to the top.""" bitmap = self.image.bitmap.astype(np.float) histogram = bitmap.sum(axis=1) - gradient = filters.convolve1d(histogram, [1, -1], axis=0) + gradient = filters.correlate1d(histogram, [-1, 1], axis=0) # top = gradient.argmax() bottom = gradient.argmin() return bottom