【问题标题】:Separation of background/foreground layers in a scanned document分离扫描文档中的背景/前景层
【发布时间】:2010-12-01 17:33:04
【问题描述】:

我需要为 OCR 自动移除扫描文档图像的浅色背景。

ScanTailor 是一个开源的基于 C++ GUI 的应用程序,它执行背景分离等功能,但我不知道如何只运行实际移除背景的最后一步。

理想情况下,我可以找到执行此操作的代码,或者:

  1. 将该部分移植到 C#
  2. 修改 C++ 以响应命令行执行,仅在给定图像上执行该步骤

你能帮我理解我该怎么做吗?
或者你知道其他可以做到这一点的图书馆吗? (任何语言/平台都可以接受)

【问题讨论】:

    标签: c# c++ image-processing background bitmap


    【解决方案1】:

    您指的是 OCR 应用程序中必需的阈值、去斑和去噪技术。

    结果的质量很大程度上取决于许多不同的因素 -

    原件的打印质量 扫描质量 图像分辨率 使用的背景颜色和图案。 噪音和其他标记。

    您可能会发现http://www.hi-components.com/nievolution.asp 的 IEvolution.NET 库很有用。它有许多图像处理功能可供使用。

    有许多商业引擎可用。没有一种完美的功能可以解决图像处理问题。您必须调整函数和参数以匹配您的图像。 http://www.recogniform.com/thresholding.htm

    Google 搜索会显示很多结果。

    【讨论】:

      【解决方案2】:

      算法大概是这样的:

      • 确定背景颜色是什么
      • 扫描位图以查找颜色与背景颜色(和/或足够相似)的像素
      • 将这些像素转换为白色或透明
      • 可能(尤其是当页面包含图像而不仅仅是文本时)忽略孤立像素,这些像素是背景颜色,但不与其他背景像素相邻

      如果是高分辨率低色深(例如黑白)图像,则需要将此算法应用于groups of pixels

      【讨论】:

      • 如何轻松忽略孤立像素?基本上考虑噪声图像,我也应该进行某种噪声消除。剩下的就是煎饼了。
      猜你喜欢
      • 2013-01-03
      • 2015-12-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-08-26
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多