当前位置: 首页 > 知识库问答 >
问题:

宇宙魔方3.02.02崩溃JRE

韩豪
2023-03-14

我们正在使用Tess4J/Tesseract在webapp上执行OCR。在Windows上一切正常,但当部署在Linux机器(CentOS 6.8)上时,程序崩溃并自动杀死Apache tomcat服务器。

我们读取了多个文件(不同的文件)simultaneously.if我们运行OCR它运行大约1分钟后它通过致命错误。你能建议如何解决吗?

Java运行时环境检测到致命错误:

在pc=0x00007f7d5934ff90、pid=17649、tid=140176377489152时的SIGSEGV(0xb)

JRE版本:Java(TM)SE运行时环境(8.0_60-b27)(build 1.8.0_60-b27)JavaVM:JavaHotSpot(TM)64位服务器VM(25.60-b23混合模式linux-amd64压缩oops)问题帧:

 C [libtesseract.so.3.0.2+0x22cf90] tesseract::HistogramRect(unsigned char const*, int, int, int, int, int, int, int*)+0x70

无法写入核心转储。核心转储已禁用。要启用核心转储,请在再次启动Java之前尝试ulimit-c unlimited

共有1个答案

卢晟
2023-03-14

在将图像传递给tess4j之前,我通过在javacv中将图像大小调整为固定大小(我想您可以进行百分比调整)来修复它。

我的调整大小方法示例。

public static IplImage resize(IplImage img_source){
        IplImage resized = IplImage.create(600, 480, img_source.depth(), img_source.nChannels());
        cvResize(img_source,resized);
        return resized;
    }

然后我在下面进行tesseract提取:

public static String extract(BufferedImage bi, Rectangle r) throws CvHandler, IOException, TesseractException{
        ITesseract tess = new Tesseract();
        String tessPath = getTess();
        tess.setPageSegMode(1);
        tess.setLanguage("eng");
        tess.setDatapath(tessPath);
        tess.setOcrEngineMode(TessOcrEngineMode.OEM_DEFAULT);
        tess.setTessVariable("load_system_dawg", "false");
        tess.setTessVariable("load_freq_dawg", "false");
        tess.setTessVariable("tessedit_create_hocr", "0");
        tess.setTessVariable("tessedit_char_whitelist","ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789");

        String result = "";
        if (!r.getBounds().isEmpty()){
            try{
                result = tess.doOCR(bi, r);
            }catch(TesseractException e){
                throw new CvHandler(e.getMessage());
            }
        }else result = tess.doOCR(bi);

        return result;
    }

用于将IplImage转换为BuffereImage源的辅助方法:

public static BufferedImage convertIplToBuffered(IplImage img){

        OpenCVFrameConverter.ToIplImage grabberConverter = new OpenCVFrameConverter.ToIplImage();
        Java2DFrameConverter paintConverter = new Java2DFrameConverter();
        Frame frame = grabberConverter.convert(img);
        BufferedImage img_result = paintConverter.getBufferedImage(frame,1);

        return img_result;
    }
 类似资料:
  • 我正在尝试处理我用tesseract录制的黑板图像,但运气不好。我想过做预处理来帮助提高我们的结果,但不确定该用什么方法来调用它。 这是我拥有的图像: 下面是我正在运行的< code>tesseract命令: 请注意,它不必正确处理所有数学符号,但至少要得到,也许。 我以前有一张照片,只用这些命令就能很好地工作。照片如下: 下面是它会产生的结果: 这并不完美,但比我以前得到的要好得多。如何提高新黑

  • 在我的Java应用程序中,我想从图像中提取文本。我下载了谷歌的Tesseract OCR,并将其安装在我的Windows XP机器上。我遵循了Tesseract的教程Tess4J-JNA包装器,不幸的是出现了这个错误: 我在StackOverFlow中发现了类似的问题,但似乎没有任何效果。我希望你能帮我解决这个问题! 下面是我在Netbeans IDE 7.2中的项目结构:

  • 60min,算法我用穷举做的,不会动归,面试官面露难色😂😂面试官人很好,我忘了可能导致ThreadLocal内存泄露的原因,面试官会尝试引导我去理解和推断。 项目 用过哪些分布式组件,介绍功能以及怎么用的 介绍了解过的限流算法并做比较 Sentinel怎么实现熔断与降级的 比较Synchronized与Lock,并介绍他们的粒度 线程池参数 ThreadLocal实现机制与内存泄露问题 可达性

  • 群友内设 40分钟 1.聊项目 项目hook 路由 useContext优化 2.vite和webpack打包的区别 3.最近在怎么样学前端 3.setState之后做了什么 说源码,调度器和更新队列 4.说一说函数执行上下文 this 5.说说es6有啥 6.小程序的底层架构 简历上写了但是很久没些小程序,结果他们心识最近就是在做小程序 没什么好说的,问的比较随意,因为是内设而且心识缺人,快冲

  • 我们有一个使用MongoDB连接器v3.1的环回v3.8应用程序,它在运行本机MongoDB的环境中工作正常,但现在我们想部署到Azure并使用宇宙数据库,理论上应该支持所有本机MongoDB命令。 我们面临的问题是修补程序操作(我相信通过环回映射到Model.updateAttribute)不起作用。这是我们得到的错误: 无法更新客户端。{错误:未找到id为592cc132a31109354c4

  • 本文向大家介绍js实现宇宙星空背景效果的方法,包括了js实现宇宙星空背景效果的方法的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了js实现宇宙星空背景效果的方法。分享给大家供大家参考。具体实现方法如下: 运行效果如下图所示: 希望本文所述对大家的javascript程序设计有所帮助。