如何在java中将文本区域与图像分开

2024-02-16

我正在使用 OCR 来识别护照详细信息,因为我使用的是 Tesseract Java API。为了获得更好的准确性,我需要将整个图像(可以是 .png、.jpeg、.tiff)仅划分为文本区域。有没有开源的java库可以将文本区域与图像分开。请给我任何建议。


Marvin http://marvinproject.sourceforge.net/en/index.html正好为此目的提供了一种方法。

public static java.util.List<MarvinSegment> findTextRegions(MarvinImage imageIn,
                                        int maxWhiteSpace,
                                        int maxFontLineWidth,
                                        int minTextWidth,
                                        int grayScaleThreshold)

输入图像:

输出图像:

源代码:

import static marvin.MarvinPluginCollection.*;

public class TextRegions{

        public static void main(String[] args) {

        MarvinImage image = MarvinImageIO.loadImage("./res/passport.png");
        MarvinImage originalImage = image.clone();
        List<MarvinSegment> segments = findTextRegions(image, 15, 8, 30, 150);

        for(MarvinSegment s:segments){
            if(s.height >= 5){
                originalImage.drawRect(s.x1, s.y1, s.x2-s.x1, s.y2-s.y1, Color.red);
            }
        }

        MarvinImageIO.saveImage(originalImage, "./res/passport_2.png");
    }
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何在java中将文本区域与图像分开 的相关文章

随机推荐