我们正在使用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
在将图像传递给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
上来两道算法:波兰国旗+快排 吐槽:这一周一直忙着期末考试,算法一点没刷,早忘光了,33分钟一道a出来,我就知道完了。 正文: 1. 介绍一下你的项目 2. 点赞功能怎么实现的(指出了项目中通过RabbitMQ将点赞数发送到对应的各个业务模块的方案不可取,有道理) 3. MQ的特性 4. 消息消费失败怎么办 5. 对Redis的了解 6. Redis的持久化机制 面试官人很好,很有耐心,奈何自己太