[ocrfeeder/new_fixes: 3/10] copy a new instance of the current	ocr-engine for parallel use
- From: Joaquim Manuel Pereira Rocha <jrocha src gnome org>
- To: commits-list gnome org
- Cc: 
- Subject: [ocrfeeder/new_fixes: 3/10] copy a new instance of the current	ocr-engine for parallel use
- Date: Mon,  1 Oct 2012 19:51:02 +0000 (UTC)
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]