是否有人建议使用自动裁剪和校正图像的java库(例如从平板扫描仪中检索到的那些)?
答案 0 :(得分:4)
ImageMagick可以做到这一点;你可以使用ImageMagick Java bindings。 auto-crop运算符可能就是您正在寻找的。自动纠偏是一个更难的问题,涉及一些重要的图像处理;我不确定ImageMagick能否解决这个问题。如果你能用其他东西找出偏斜参数,ImageMagick绝对可以为你解开它。
答案 1 :(得分:3)
我写了一个非常好的deskewer的简单端口。如果图像中有一些文本,则效果最佳。
答案 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()));
}
答案 3 :(得分:0)
我想有人在Java Advanced Imaging API之上建立了一个库来做这件事。您可以尝试使用Google搜索“Java Advanced Imaging deskew”。
答案 4 :(得分:0)
我写了一个简单的图像deskew应用程序,包括源代码。可从以下位置获取: