是否有人对执行图像自动裁剪和纠偏的 java 库有建议(例如从平板扫描仪检索的图像)?
问问题
12123 次
5 回答
6
去偏斜
看看Tess4j(Tesseract 的 Java JNA 包装器)。
您可以将ImageDeskew.getSkewAngle()与ImageHelper.rotate(BufferedImage image, double angle)结合使用。
在 tess4j 项目Tesseract1Test.java的 test 文件夹上有一个如何使用它的示例
public void testDoOCR_SkewedImage() throws Exception {
logger.info("doOCR on a skewed PNG image");
File imageFile = new File(this.testResourcesDataPath, "eurotext_deskew.png");
BufferedImage bi = ImageIO.read(imageFile);
ImageDeskew id = new ImageDeskew(bi);
double imageSkewAngle = id.getSkewAngle(); // determine skew angle
if ((imageSkewAngle > MINIMUM_DESKEW_THRESHOLD || imageSkewAngle < -(MINIMUM_DESKEW_THRESHOLD))) {
bi = ImageHelper.rotateImage(bi, -imageSkewAngle); // deskew image
}
String expResult = "The (quick) [brown] {fox} jumps!\nOver the $43,456.78 <lazy> #90 dog";
String result = instance.doOCR(bi);
logger.info(result);
assertEquals(expResult, result.substring(0, expResult.length()));
}
于 2016-03-27T13:42:57.267 回答
4
ImageMagick可以做到这一点;您可以使用ImageMagick Java 绑定。自动裁剪运算符可能是您正在寻找的。自动纠偏是一个更难的问题,涉及一些重要的图像处理。我不确定 ImageMagick 是否可以处理。如果您可以使用其他方法计算出倾斜参数,ImageMagick 绝对可以为您取消倾斜。
于 2008-11-07T20:29:25.123 回答
3
我写了一个笔记,一个非常好的deskewer的简单端口。如果图像中有一些文字,效果最好。
于 2010-10-28T12:46:41.547 回答
0
我想有人在Java Advanced Imaging API之上构建了一个库来执行此操作。您可以尝试谷歌搜索“Java Advanced Imaging 纠偏”。
于 2008-11-07T20:31:47.973 回答
0
我编写了一个简单的图像校正应用程序,包括源代码。可在:
于 2009-10-24T13:25:40.823 回答