[ocrfeeder/new_fixes: 3/10] copy a new instance of the current ocr-engine for parallel use



commit cced5017d9ef5d9890ea91a91a89052edff647d1
Author: Jan Losinski <losinski wh2 tu-dresden de>
Date:   Thu Jul 26 20:35:55 2012 +0200

    copy a new instance of the current ocr-engine for parallel use
    
    There is only one ocr-engine-instance per engine-type. This has a global
    state used while processing. This does not work in a threaded
    environment. So we work around this by copying the whole instance into a
    new one before using for ocr processing.
    
    Signed-off-by: Jan Losinski <losinski wh2 tu-dresden de>

 src/ocrfeeder/feeder/ocrEngines.py    |    4 ++++
 src/ocrfeeder/studio/widgetModeler.py |    2 +-
 2 files changed, 5 insertions(+), 1 deletions(-)
---
diff --git a/src/ocrfeeder/feeder/ocrEngines.py b/src/ocrfeeder/feeder/ocrEngines.py
index 3d73a1c..2c08975 100644
--- a/src/ocrfeeder/feeder/ocrEngines.py
+++ b/src/ocrfeeder/feeder/ocrEngines.py
@@ -22,6 +22,7 @@ import string
 
 import tempfile
 import os
+import copy
 import xml.etree.ElementTree as ET
 from xml.parsers.expat import ExpatError
 from ocrfeeder.studio.dataHolder import TEXT_TYPE, IMAGE_TYPE
@@ -53,6 +54,9 @@ class Engine:
         self.temporary_folder = temporary_folder
         self.__color_information = None
 
+    def clone(self):
+        return copy.deepcopy(self)
+
     def setImage(self, image):
         image_file = tempfile.mkstemp(dir = self.temporary_folder,
                                       suffix = '.' + self.image_format.lower())[1]
diff --git a/src/ocrfeeder/studio/widgetModeler.py b/src/ocrfeeder/studio/widgetModeler.py
index 6fccab3..0e3bcd6 100644
--- a/src/ocrfeeder/studio/widgetModeler.py
+++ b/src/ocrfeeder/studio/widgetModeler.py
@@ -625,7 +625,7 @@ class ImageReviewer_Controler:
             adjustment_size = None
         clean_text = self.configuration_manager.clean_text
 
-        layout_analysis = LayoutAnalysis(self.__getConfiguredOcrEngine(),
+        layout_analysis = LayoutAnalysis(self.__getConfiguredOcrEngine().clone(),
                                          window_size,
                                          improve_column_detection,
                                          column_min_width,



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]