summaryrefslogtreecommitdiffstats
path: root/kooka/ocrword.h
diff options
context:
space:
mode:
Diffstat (limited to 'kooka/ocrword.h')
-rw-r--r--kooka/ocrword.h111
1 files changed, 111 insertions, 0 deletions
diff --git a/kooka/ocrword.h b/kooka/ocrword.h
new file mode 100644
index 00000000..606acb9f
--- /dev/null
+++ b/kooka/ocrword.h
@@ -0,0 +1,111 @@
+/***************************************************************************
+ ocrword.h - ocr-result word and wordlist
+ -------------------
+ begin : Fri 10 Jan 2003
+ copyright : (C) 2003 by Klaas Freitag
+ email : freitag@suse.de
+ ***************************************************************************/
+
+/***************************************************************************
+ * *
+ * This file may be distributed and/or modified under the terms of the *
+ * GNU General Public License version 2 as published by the Free Software *
+ * Foundation and appearing in the file COPYING included in the *
+ * packaging of this file. *
+ *
+ * As a special exception, permission is given to link this program *
+ * with any version of the KADMOS ocr/icr engine of reRecognition GmbH, *
+ * Kreuzlingen and distribute the resulting executable without *
+ * including the source code for KADMOS in the source distribution. *
+ *
+ * As a special exception, permission is given to link this program *
+ * with any edition of Qt, and distribute the resulting executable, *
+ * without including the source code for Qt in the source distribution. *
+ * *
+ ***************************************************************************/
+
+#ifndef _OCR_WORD_
+#define _OCR_WORD_
+
+#include <qstringlist.h>
+#include <qvaluevector.h>
+#include <qvaluelist.h>
+#include <qrect.h>
+
+class QString;
+class QRect;
+
+
+/* ==== ocrWord ====================================== */
+class ocrWord : public QString
+{
+public:
+ ocrWord(const QString& s);
+ ocrWord();
+ QStringList getAlternatives()
+ { return m_alternatives; }
+
+ void setAlternatives( const QString& s )
+ { m_alternatives.append(s); }
+
+ // QRect boundingRect();
+
+ void setKnode( int k )
+ { m_startKnode = k; }
+ void setLine( int l )
+ { m_line = l; }
+
+ int getLine() const { return m_line; }
+ int getKnode() const { return m_startKnode; }
+
+ void setRect( const QRect& r )
+ { m_position = r; }
+ QRect rect()
+ { return m_position; }
+
+private:
+ QStringList m_alternatives;
+ int m_startKnode;
+ int m_line;
+ QRect m_position;
+};
+
+/* ==== ocrWordList ====================================== */
+
+/**
+ * This represents a line of words in an ocr'ed document
+ */
+class ocrWordList : public QValueList<ocrWord>
+{
+public:
+ ocrWordList();
+ QStringList stringList();
+
+ bool updateOCRWord( const QString& from, const QString& to );
+
+ bool findFuzzyIndex( const QString& word, ocrWord& resWord );
+
+ QRect wordListRect( );
+
+ void setBlock( int b );
+ int block() const { return m_block; }
+
+private:
+ int m_block;
+};
+
+/**
+ * All lines of a block: A value vector containing as much as entries
+ * as lines are available in a block. Needs to be resized acordingly.
+ */
+typedef QValueVector<ocrWordList> ocrBlock;
+
+/**
+ * Blocks taken together form the page.
+ * Attention: Needs to be resized to the amount of blocks !!
+ */
+typedef QValueVector<ocrBlock> ocrBlockPage;
+
+typedef QValueVector<QRect> rectList;
+
+#endif