我已经在项目中为Tesseract javacpp导入了Maven存储库。 我正在尝试使用javacpp简单地将图像转换为文本
代码示例
import org.bytedeco.javacpp.*;
import static org.bytedeco.javacpp.lept.*;
import static org.bytedeco.javacpp.tesseract.*;
public class BasicExample {
public static void main(String[] args) {
BytePointer outText;
TessBaseAPI api = new TessBaseAPI();
// Initialize tesseract-ocr with English, without specifying tessdata path
if (api.Init(args[0], "eng") != 0) {
System.err.println("Could not initialize tesseract.");
System.exit(1);
}
System.out.println(“Successfully init tess “);
// Open input image with leptonica library
PIX image = pixRead(args.length > 0 ? args[1] : "/usr/src/. tesseract/testing/phototest.tif");
api.SetImage(image);
// Get OCR result
outText = api.GetUTF8Text();
System.out.println("OCR output:\n" + outText.getString());
// Destroy used object and release memory
api.End();
outText.deallocate();
pixDestroy(image);
}
}
此程序可在macos上正常运行,我通过在args [1]处提供路径和在args [0]处经训练的数据路径将图像成功转换为文本 同一程序在Linux ubuntu上失败,并显示以下错误:
成功初始化
错误的jpeg库版本库为80,呼叫者期望62
其他地方提供的解决方案都无法解决问题。
请注意,Tesseract已成功启动,并且错误在于调用PixRead()的行!
该程序没有错误,因为它可以在macOS上完美运行
问题
如何更正此错误?