【发布时间】:2013-11-29 03:36:53
【问题描述】:
我有几个来自彩色图像的样本,我应该将它们转换为二进制。我通过使用自适应阈值获得了最好的结果。
这些数字非常好,定义明确,但周围很嘈杂,例如,分隔每个数字的这些“垂直线”最终被读取为用于 OCR 工具的数字 1。
然后我注意到图像周围的数字很干净。我想我是否可以只剪掉数字(在将图片制作成黑白之前或之后?),然后将这些数字“粘贴”到白色背景上。
我尝试应用 erosion 和 dilation,但仍有许多剩余的“点”。如果我能按照我的想法做(上图),它会减少侵蚀/扩张并增加切割前数字周围的“清洁”,我不知道。
这可能吗?我说的有道理吗?如果是,我怎么能使用 OpenCV 做到这一点?有什么建议吗?
我正在使用的一些图片:
注意:以上图片没有经过腐蚀和/或膨胀的过程,只是自适应阈值处理。
更新:
@Mahm00d,我用第一张图试了你说的,得到了下图,非常好,但是前两个数字的反射问题仍然存在。有没有什么办法解决这一问题?我应用了自适应阈值,但图像仍然很噪点。
GaussianBlur + 带有 OTSU 标志的阈值:
GaussianBlur + 自适应阈值:
【问题讨论】:
-
查看我的更新答案。
标签: c++ opencv image-processing computer-vision edge-detection