我通过tesseract运行pdf /图像,dpi越高,结果就会越好。我在sparse_text的页面分割模式中使用了tesseract,因此在将其输入到tesseract引擎中时,我真的需要将整个pdf作为一个整体进行检查。如何确保请求的图像分辨率不会丢失内存异常
我使用adobe pdf sdk从PDF中获取图像以供入tesseract。问题是,有时我得到一个内存不足的错误。我打电话
int[] intBuf = util.getAbgrRect(page, x, y, w, h, wPix, hPix);
在大多数情况下(归一化坐标系)要求有参数x = 0, y = 0, w = 1, h = 1, wPix = 300 dpi * length of drawing, hPix 300 dpi * height of drawing
。由于我不知道从用户输入到程序中的pdf的大小,我需要进行一些类型的检查以确保所请求的wPix和hPix对于可用内存的量不是太大,并且会导致崩溃pdf sdk。
我有点不确定如何解决这个问题,我想我可以做的一件事是检查可用的内存/ Java堆大小可用,并以某种方式确定我可以从pdf sdk请求的最大dpi,而不会耗尽内存/请求数据太多的数据阵列。我也想知道是否可以从pdf sdk请求二进制图像或灰度图像,以便返回的数组尺寸更小,这就是我需要提供给tesseract的最终内容。我不确定这是否是一个好主意,或者是否有其他想法。有关如何解决这个问题的任何建议?