去污文件 - OCR
Posted
技术标签:
【中文标题】去污文件 - OCR【英文标题】:Despeckling documents - OCR 【发布时间】:2016-02-11 14:12:15 【问题描述】:我已经搜索过,但找不到在扫描文档中进行去斑的算法。我已经使用中值过滤器去除了一些较小的斑点。
我需要一种从文档中去除大斑点的算法,我曾尝试使用连接组件标签(使用 Aforge),但如果对象大于 X 像素,则无法将其着色为白色(将其去除)。
有什么方法可以删除图片上大于 X 像素的对象(斑点、斑点、噪点)?
编辑:
这是我正在尝试为 OCR 准备的文档。 Original Document
我们可以看到,文本左侧有很多噪音。然后我使用 Blur 来模糊左侧的噪点,然后我对文档进行二值化,得到类似 After Binarization
现在我需要从左侧删除大的黑色区域。我只是不知道该怎么做...
【问题讨论】:
你试过使用tesseract吗? 能否请您张贴图片或图片链接?对于图像处理问题,假设您应该始终发布示例图像。即使您在文档中看到许多不同类型的斑点/噪点,拥有一些示例图像也会帮助那些试图给您建议的人。消除斑点/斑点的方法有很多,但会根据您通常看到的噪声类型选择不同的技术。 感谢您的回答。我已经编辑了问题并添加了更多信息和图像。我没有尝试过使用tesseract,我正在尝试自己实现所有算法... 是否可以选择裁剪图像?即找到黑色区域并裁剪到它的内边缘 【参考方案1】:在 Matlab 中尝试一下。
img = imread('xWFEC.png');
img = imcomplement(imclearborder(imcomplement(img)));
figure; imshow(img);
输出:
【讨论】:
想补充说明这是如何工作的,特别是因为这是一个C#
问题,据我所知,这些功能或类似功能在标准C#
中不可用,所以会需要用户自己实现。
@TheLethalCoder,再次感谢。据我所知,我们可以在 C# 中使用“EmguCV”(emgu.com/wiki/index.php/Main_Page)。这个 SO 答案 (***.com/questions/24731810/…) 清楚地解释了如何使用 OpenCV 实现 Matlab 'imclearborder'。以上是关于去污文件 - OCR的主要内容,如果未能解决你的问题,请参考以下文章