[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]