首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >如何在java中将文本区域与图像分开?

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

Stack Overflow用户
提问于 2016-10-25 09:38:13
回答 2查看 1.2K关注 0票数 2

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

EN

回答 2

Stack Overflow用户

发布于 2016-11-24 16:01:24

Marvin正是为此目的提供了一种方法。

代码语言:javascript
运行
AI代码解释
复制
public static java.util.List<MarvinSegment> findTextRegions(MarvinImage imageIn,
                                        int maxWhiteSpace,
                                        int maxFontLineWidth,
                                        int minTextWidth,
                                        int grayScaleThreshold)

输入图像:

输出画面:

源码:

代码语言:javascript
运行
AI代码解释
复制
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
EN

Stack Overflow用户

发布于 2016-10-25 11:16:13

您最好的选择是使用OpenCV (有用于Java的绑定)。

这个问题很难解决,而且没有在所有情况下都有效的解决方案。我会查看像this one这样的帖子中的建议,并尝试为您的特定情况找到最佳解决方案。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/40236472

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档