You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tika.apache.org by ta...@apache.org on 2021/02/10 22:54:07 UTC

[tika] branch main updated: refactor "imageprocessing" to imagepreprocessing

This is an automated email from the ASF dual-hosted git repository.

tallison pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/tika.git


The following commit(s) were added to refs/heads/main by this push:
     new 8239a25  refactor "imageprocessing" to imagepreprocessing
8239a25 is described below

commit 8239a25f7230c2ade6b7e9e7cfefda2d7eac0269
Author: tballison <ta...@apache.org>
AuthorDate: Wed Feb 10 17:53:57 2021 -0500

    refactor "imageprocessing" to imagepreprocessing
---
 .../org/apache/tika/parser/ocr/ImagePreprocessor.java | 19 +++----------------
 .../apache/tika/parser/ocr/TesseractOCRConfig.java    | 16 ++++++++--------
 .../apache/tika/parser/ocr/TesseractOCRParser.java    |  6 +++---
 .../test-configs/tika-config-tesseract-full.xml       |  2 +-
 .../test-configs/tika-config-tesseract-partial.xml    |  2 +-
 5 files changed, 16 insertions(+), 29 deletions(-)

diff --git a/tika-parsers/tika-parsers-classic/tika-parsers-classic-modules/tika-parser-ocr-module/src/main/java/org/apache/tika/parser/ocr/ImagePreprocessor.java b/tika-parsers/tika-parsers-classic/tika-parsers-classic-modules/tika-parser-ocr-module/src/main/java/org/apache/tika/parser/ocr/ImagePreprocessor.java
index 47e8a66..2616f6c 100644
--- a/tika-parsers/tika-parsers-classic/tika-parsers-classic-modules/tika-parser-ocr-module/src/main/java/org/apache/tika/parser/ocr/ImagePreprocessor.java
+++ b/tika-parsers/tika-parsers-classic/tika-parsers-classic-modules/tika-parser-ocr-module/src/main/java/org/apache/tika/parser/ocr/ImagePreprocessor.java
@@ -18,34 +18,21 @@ package org.apache.tika.parser.ocr;
 
 import org.apache.commons.exec.CommandLine;
 import org.apache.commons.exec.DefaultExecutor;
-import org.apache.commons.io.IOUtils;
-import org.apache.tika.io.TemporaryResources;
 import org.apache.tika.metadata.Metadata;
-import org.apache.tika.parser.external.ExternalParser;
 import org.apache.tika.parser.ocr.tess4j.ImageDeskew;
-import org.apache.tika.utils.ProcessUtils;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
 import javax.imageio.ImageIO;
 import java.awt.image.BufferedImage;
-import java.io.File;
-import java.io.FileOutputStream;
 import java.io.IOException;
-import java.io.OutputStreamWriter;
 import java.io.Serializable;
-import java.nio.charset.Charset;
-import java.nio.file.Files;
 import java.nio.file.Path;
-import java.nio.file.Paths;
 import java.util.Arrays;
 import java.util.Collection;
 import java.util.Collections;
-import java.util.HashMap;
 import java.util.List;
 import java.util.Locale;
-import java.util.Map;
-import java.util.concurrent.TimeUnit;
 import java.util.stream.Stream;
 
 class ImagePreprocessor implements Serializable {
@@ -68,7 +55,7 @@ class ImagePreprocessor implements Serializable {
                 ? getAngle(sourceFile, metadata)
                 : 0d;
 
-        if (config.isEnableImageProcessing() || config.isApplyRotation() && angle != 0) {
+        if (config.isEnableImagePreprocessing() || config.isApplyRotation() && angle != 0) {
             // process the image - parameter values can be set in TesseractOCRConfig.properties
             CommandLine commandLine = new CommandLine(fullImageMagickPath);
 
@@ -84,7 +71,7 @@ class ImagePreprocessor implements Serializable {
 
             Stream<List<String>> stream = Stream.empty();
             if (angle == 0) {
-                if (config.isEnableImageProcessing()) {
+                if (config.isEnableImagePreprocessing()) {
                     // Do pre-processing, but don't do any rotation
                     stream = Stream.of(
                             density,
@@ -95,7 +82,7 @@ class ImagePreprocessor implements Serializable {
                             sourceFileArg,
                             targFileArg);
                 }
-            } else if (config.isEnableImageProcessing()) {
+            } else if (config.isEnableImagePreprocessing()) {
                 // Do pre-processing with rotation
                 stream = Stream.of(
                         density,
diff --git a/tika-parsers/tika-parsers-classic/tika-parsers-classic-modules/tika-parser-ocr-module/src/main/java/org/apache/tika/parser/ocr/TesseractOCRConfig.java b/tika-parsers/tika-parsers-classic/tika-parsers-classic-modules/tika-parser-ocr-module/src/main/java/org/apache/tika/parser/ocr/TesseractOCRConfig.java
index ad68c4e..79b05d6 100644
--- a/tika-parsers/tika-parsers-classic/tika-parsers-classic-modules/tika-parser-ocr-module/src/main/java/org/apache/tika/parser/ocr/TesseractOCRConfig.java
+++ b/tika-parsers/tika-parsers-classic/tika-parsers-classic-modules/tika-parser-ocr-module/src/main/java/org/apache/tika/parser/ocr/TesseractOCRConfig.java
@@ -82,8 +82,8 @@ public class TesseractOCRConfig implements Serializable {
     // The format of the ocr'ed output to be returned, txt or hocr.
     private OUTPUT_TYPE outputType = OUTPUT_TYPE.TXT;
 
-    // enable image processing (optional)
-    private boolean enableImageProcessing = false;
+    // enable image preprocessing with ImageMagick (optional)
+    private boolean enableImagePreprocessing = false;
 
     // resolution of processed image (in dpi).
     private int density = 300;
@@ -312,19 +312,19 @@ public class TesseractOCRConfig implements Serializable {
 
     /**
      * @return image processing is enabled or not
-     * @see #setEnableImageProcessing(boolean)
+     * @see #setEnableImagePreprocessing(boolean)
      */
-    public boolean isEnableImageProcessing() {
-        return enableImageProcessing;
+    public boolean isEnableImagePreprocessing() {
+        return enableImagePreprocessing;
     }
 
     /**
      * Set the value to true if processing is to be enabled.
      * Default value is false.
      */
-    public void setEnableImageProcessing(boolean enableImageProcessing) {
-        this.enableImageProcessing = enableImageProcessing;
-        userConfigured.add("enableImageProcessing");
+    public void setEnableImagePreprocessing(boolean enableImagePreprocessing) {
+        this.enableImagePreprocessing = enableImagePreprocessing;
+        userConfigured.add("enableImagePreprocessing");
     }
 
     /**
diff --git a/tika-parsers/tika-parsers-classic/tika-parsers-classic-modules/tika-parser-ocr-module/src/main/java/org/apache/tika/parser/ocr/TesseractOCRParser.java b/tika-parsers/tika-parsers-classic/tika-parsers-classic-modules/tika-parser-ocr-module/src/main/java/org/apache/tika/parser/ocr/TesseractOCRParser.java
index 8258286..d349d33 100644
--- a/tika-parsers/tika-parsers-classic/tika-parsers-classic-modules/tika-parser-ocr-module/src/main/java/org/apache/tika/parser/ocr/TesseractOCRParser.java
+++ b/tika-parsers/tika-parsers-classic/tika-parsers-classic-modules/tika-parser-ocr-module/src/main/java/org/apache/tika/parser/ocr/TesseractOCRParser.java
@@ -269,7 +269,7 @@ public class TesseractOCRParser extends AbstractParser implements Initializable
             if (size >= config.getMinFileSizeToOcr() && size <= config.getMaxFileSizeToOcr()) {
 
                 // Process image
-                if (config.isEnableImageProcessing() || config.isApplyRotation()) {
+                if (config.isEnableImagePreprocessing() || config.isApplyRotation()) {
                     if (!hasImageMagick) {
                         LOG.warn("User has selected to preprocess images, but I can't find ImageMagick." +
                                 "Backing off to original file.");
@@ -674,8 +674,8 @@ public class TesseractOCRParser extends AbstractParser implements Initializable
     }
 
     @Field
-    public void setEnableImageProcessing(boolean enableImageProcessing) {
-        defaultConfig.setEnableImageProcessing(enableImageProcessing);
+    public void setEnableImagePreprocessing(boolean enableImagePreprocessing) {
+        defaultConfig.setEnableImagePreprocessing(enableImagePreprocessing);
     }
 
     @Field
diff --git a/tika-parsers/tika-parsers-classic/tika-parsers-classic-modules/tika-parser-ocr-module/src/test/resources/test-configs/tika-config-tesseract-full.xml b/tika-parsers/tika-parsers-classic/tika-parsers-classic-modules/tika-parser-ocr-module/src/test/resources/test-configs/tika-config-tesseract-full.xml
index 1572a6e..88c0357 100644
--- a/tika-parsers/tika-parsers-classic/tika-parsers-classic-modules/tika-parser-ocr-module/src/test/resources/test-configs/tika-config-tesseract-full.xml
+++ b/tika-parsers/tika-parsers-classic/tika-parsers-classic-modules/tika-parser-ocr-module/src/test/resources/test-configs/tika-config-tesseract-full.xml
@@ -31,7 +31,7 @@
         <param name="outputType" type="string">hocr</param>
         <param name="filter" type="string">box</param>
         <param name="applyRotation" type="bool">true</param>
-        <param name="enableImageProcessing" type="bool">false</param>
+        <param name="enableImagePreprocessing" type="bool">false</param>
         <param name="language" type="string">ceb</param>
       </params>
     </parser>
diff --git a/tika-parsers/tika-parsers-classic/tika-parsers-classic-modules/tika-parser-ocr-module/src/test/resources/test-configs/tika-config-tesseract-partial.xml b/tika-parsers/tika-parsers-classic/tika-parsers-classic-modules/tika-parser-ocr-module/src/test/resources/test-configs/tika-config-tesseract-partial.xml
index 33ca5c1..ed3c492 100644
--- a/tika-parsers/tika-parsers-classic/tika-parsers-classic-modules/tika-parser-ocr-module/src/test/resources/test-configs/tika-config-tesseract-partial.xml
+++ b/tika-parsers/tika-parsers-classic/tika-parsers-classic-modules/tika-parser-ocr-module/src/test/resources/test-configs/tika-config-tesseract-partial.xml
@@ -28,7 +28,7 @@
         <param name="outputType" type="string">hocr</param>
         <param name="filter" type="string">box</param>
         <param name="applyRotation" type="bool">false</param>
-        <param name="enableImageProcessing" type="bool">false</param>
+        <param name="enableImagePreprocessing" type="bool">false</param>
 
         <param name="language" type="string">fra+deu</param>