Как решить эту ошибку Tesseract! Strcmp (locale, "C")? - PullRequest
0 голосов
/ 10 марта 2019

Я пытаюсь создать приложение Java OCR, используя Tesseract java SDK.Я использую Netbeans 9.0 и JDK 11, Macbook Pro HighSierra.

Я столкнулся с этой ошибкой:

!strcmp(locale, "C"):Error:Assert failed:in file baseapi.cpp, line 209

A fatal error has been detected by the Java Runtime Environment:

SIGILL (0x4) at pc=0x000000012a003d96, pid=53684, tid=7171

JRE version: Java(TM) SE Runtime Environment (11.0.1+13) (build 11.0.1+13-LTS)
Java VM: Java HotSpot(TM) 64-Bit Server VM (11.0.1+13-LTS, mixed mode, tiered, compressed oops, g1 gc, bsd-amd64)
Problematic frame: C  [libtesseract.dylib+0x159d96]  ERRCODE::error(char const*, TessErrorLogCode, char const*, ...) const+0x178

No core dump will be written. Core dumps have been disabled. To enable core dumping, try "ulimit -c unlimited" before starting Java again

Ниже приведен мой код.

import com.github.sarxos.webcam.Webcam;
import com.github.sarxos.webcam.WebcamPanel;
import com.github.sarxos.webcam.WebcamResolution;
import java.awt.image.BufferedImage;
import java.io.File;
import javax.swing.JFrame;
import net.sourceforge.tess4j.Tesseract;
import net.sourceforge.tess4j.TesseractException;
import com.asprise.ocr.Ocr;
import java.io.IOException;
import javax.imageio.ImageIO;

public class StratfordClasses {

    /**
     * @param args the command line arguments
     * @throws net.sourceforge.tess4j.TesseractException
     */
public static void main(String[] args) throws TesseractException, IOException {
    Webcam webcam = Webcam.getDefault();
    webcam.setViewSize(WebcamResolution.VGA.getSize());
    WebcamPanel panel = new WebcamPanel(webcam);
    panel.setFPSDisplayed(true);
    panel.setDisplayDebugInfo(true);
    panel.setImageSizeDisplayed(true);
    panel.setMirrored(true);
    BufferedImage image = webcam.getImage();
    File f = new File("Tests.png");
    ImageIO.write(image, "png", f);
    Tesseract tesseract = new Tesseract();
    try {
        String text = tesseract.doOCR(new File(f.getPath()));
        System.out.print(text);
    } catch (TesseractException e) {
        e.printStackTrace();
    }
    //ocr.stopEngine();
    JFrame window = new JFrame("Test webcam panel");
    window.add(panel);
    window.setResizable(true);
    window.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    window.pack();
    window.setVisible(true);
    }

}

Я пробовал это Решение GitHub , но пока нет решения;

  1. Я набрал это в терминале: Export LC_ALL = C , но без изменений
  2. Я попытался установить версию 3, но это дает мне еще одну ошибку Ошибка: tesseract: "cxx11" не является общепризнанным стандартом

Так, как я могу заставить это работать, пожалуйста?

1 Ответ

0 голосов
/ 10 мая 2019

Вы набрали export LC_ALL=C или Export LC_ALL=C. Второй не правильно.

Также предполагается, что cxx-11

...