我需要为 OCR 自动删除扫描文档图像的浅色背景。
ScanTailor是一个基于 C++ GUI 的开源应用程序,可以进行背景分离等操作,但我不知道如何只运行最后一步,即实际删除背景。
理想情况下,我可以找到执行此操作的代码,并且:
- 将该部分移植到 C#
- 修改 C++ 以响应命令行执行,仅在给定图像上执行该步骤
你能帮我理解我该怎么做吗?
或者你知道其他可以做到这一点的图书馆吗? (任何语言/平台可接受)
最佳答案
您指的是 OCR 应用程序中必需的阈值处理、去 Blob 和噪声去除技术。
结果的质量很大程度上取决于许多不同的因素 -
原件的打印质量 扫描质量 图像分辨率 使用的背景颜色和图案。 噪音和其他标记。
您可以在 http://www.hi-components.com/nievolution.asp 找到 IEvolution.NET 库有用。它有许 multimap 像处理功能可供使用。
有许多可用的商业引擎。没有一个完美的函数可以解决图像处理问题。您必须调整函数和参数以匹配您的图像。 http://www.recogniform.com/thresholding.htm
- Best threshold for converting grayscale to black and white
- Adaptive threshold binarization: post-processing for removing ghost objects
- Adaptive threshold Binarization's bad effects
- fast threshold and bit packing algorithm ( possible improvements ? )
Google 搜索会显示很多结果。
关于c# - 扫描文档中背景/前景层的分离,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4327172/