用于校正和裁剪图像的Java图像库

时间:2008-11-07 20:25:08

标签: java image-processing crop

是否有人建议使用自动裁剪和校正图像的java库(例如从平板扫描仪中检索到的那些)?

5 个答案:

答案 0 :(得分:4)

ImageMagick可以做到这一点;你可以使用ImageMagick Java bindingsauto-crop运算符可能就是您正在寻找的。自动纠偏是一个更难的问题,涉及一些重要的图像处理;我不确定ImageMagick能否解决这个问题。如果你能用其他东西找出偏斜参数,ImageMagick绝对可以为你解开它。

答案 1 :(得分:3)

我写了一个非常好的deskewer的简单端口。如果图像中有一些文本,则效果最佳。

http://anydoby.com/jblog/en/java/1990

答案 2 :(得分:2)

<强>歪斜校正

看看Tess4j (Java JNA wrapper for Tesseract)

您可以将ImageDeskew.getSkewAngle()ImageHelper.rotate(BufferedImage image, double angle)合并。

有关如何在tess4j项目的测试文件夹中使用它的示例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()));
}

eurotext_deskew.png

答案 3 :(得分:0)

我想有人在Java Advanced Imaging API之上建立了一个库来做这件事。您可以尝试使用Google搜索“Java Advanced Imaging deskew”。

答案 4 :(得分:0)

我写了一个简单的图像deskew应用程序,包括源代码。可从以下位置获取:

http://www.recognition-software.com/image/deskew/