我正在尝试从图像中提取文本。问题是我正在使用下面给定的代码来处理图像并打印提取的文本。
public class Test {
public static void extractText(String filename)
// public static void main(String[] args)
{
System.setProperty("jna.library.path", "32".equals(System.getProperty("sun.arch.data.model")) ? "lib/win32-x86" : "lib/win32-x86-64");
File imageFile = new File("img_perspective.png");
Tesseract instance = Tesseract.getInstance(); // JNA Interface Mapping
// Tesseract1 instance = new Tesseract1(); // JNA Direct Mapping
try {
String result = instance.doOCR(imageFile);
System.out.println(result);
} catch (Exception e) {
System.err.println(e.getMessage());
}
}
}
当我使用 main 方法时,OCR 引擎工作得很好并且提取了文本。但是当我试图将此主要方法转换为名为“extractText()”的方法并尝试从另一个类调用它时,它会抛出异常:
org.apache.catalina.core.StandardWrapperValve invoke
SEVERE: Servlet.service() for servlet [com.patternrecognition.preprocessing.Preprocessing] in context with path [/ImagePreprocessing] threw exception [Servlet execution threw an exception] with root cause
java.lang.ClassNotFoundException: com.sun.media.imageio.plugins.tiff.TIFFImageWriteParam
at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1718)
at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1569)
at net.sourceforge.tess4j.Tesseract.doOCR(Unknown Source)
at net.sourceforge.tess4j.Tesseract.doOCR(Unknown Source)
at com.patternrecognition.preprocessing.test.extractText(test.java:19)
我不知道这有什么问题。我使用与硬编码文件名完全相同的代码。只是方法变了。
这太令人沮丧了。有人可以帮忙吗。