【发布时间】:2010-09-21 08:56:51
【问题描述】:
是否有人对执行自动裁剪和校正图像(如从平板扫描仪检索的图像)的 java 库有建议?
【问题讨论】:
标签: java image-processing crop
是否有人对执行自动裁剪和校正图像(如从平板扫描仪检索的图像)的 java 库有建议?
【问题讨论】:
标签: java image-processing crop
我写了一个note 一个非常好的deskewer 的简单端口。如果图像中有一些文字,效果最好。
【讨论】:
去偏
看看Tess4j (Java JNA wrapper for Tesseract)。
您可以将ImageDeskew.getSkewAngle() 与ImageHelper.rotate(BufferedImage image, double angle) 结合使用。
tess4j项目的test文件夹Tesseract1Test.java有一个使用示例
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()));
}
【讨论】:
我编写了一个简单的图像校正应用程序,包括源代码。可在:
【讨论】:
我想有人在Java Advanced Imaging API 之上构建了一个库来执行此操作。您可以尝试在 Google 上搜索“Java Advanced Imaging 纠偏”。
【讨论】:
ImageMagick 可以做到这一点;您可以使用ImageMagick Java bindings。 auto-crop 运算符可能就是您要找的。自动纠偏是一个更难的问题,涉及一些重要的图像处理。我不确定 ImageMagick 是否可以处理。如果您可以使用其他方法计算出倾斜参数,ImageMagick 绝对可以为您取消倾斜。
【讨论】: