问题描述
我创建了一个提取 PDF 的图像,并制作了一个带有 tesseract 的 OCR。一切正常,直到决定更改图像的 dpi。我希望这样做会出错,我尝试重新缩放我的图像,以使我的 OCR 再次正常工作。
我不知道如何重新缩放我的图像。我知道 BufferedImage 类有一些方法,但我找不到动态调整它的方法。
我不知道我是否清楚,但想象一下 300 dpi 的图像。如果我想将其更改为 600,我必须重新缩放我的图像以使我的 OCR 再次工作,我的问题是如何动态重新缩放它?原始 dpi 和新的 dpi 之间是否存在某种比率,我可以使用它来获得新的宽度和高度?还是别的什么?
为了帮助您理解我,这里是我的代码:
public double ratioDPI() {
int ratio = 0;
int minimal_dpi = 300;
int dpi = ERXProperties.intForKey("dpi.image");
return ratio = (dpi/minimal_dpi);
}
public BufferedImage rescale(BufferedImage img) {
int width_img = img.getWidth();
int height_img = img.getHeight();
double factor_width = ERXProperties.doubleForKey("factor.size.width.image.republique.francaise");
double factor_height = ERXProperties.doubleForKey("factor.size.height.image.republique.francaise");
return (BufferedImage) img.getScaledInstance((int)(width_img*ratio),(int)(height_img*ratio),BufferedImage.SCALE_SMOOTH);
}
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)