【问题标题】:How do I separates text region from image in java如何在java中将文本区域与图像分开
【发布时间】:2016-10-25 09:38:13
【问题描述】:

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

【问题讨论】:

    标签: java image-processing


    【解决方案1】:

    Marvin 正好为此目的提供了一个方法。

    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");
        }
    }
    

    【讨论】:

      【解决方案2】:

      最好的办法是使用 OpenCV(Java 有绑定)。

      问题很棘手,没有适用于所有情况的解决方案。我会检查来自this one 等线程的建议,并尝试为您的具体情况找到最佳解决方案。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2016-09-29
        • 1970-01-01
        • 1970-01-01
        • 2014-12-23
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多