【问题标题】:How to remove unwanted noise inbetween the digits of an image如何去除图像数字之间不需要的噪声
【发布时间】:2016-08-02 18:30:54
【问题描述】:

我正在使用 opencv 进行光学字符识别项目。我已经在普通数字上成功实现了 ocr。但是在实时场景中,我遇到了数字之间不需要的噪音的问题。原始图像

我已经转换为灰度并应用了阈值,然后是这样的

如果我应用轮廓检测​​,那么我也会得到那些黑色块。我怎样才能消除数字之间的块。我对 OCR 没有任何问题,我只想消除不需要的噪声并旋转图像。谢谢.

在旋转并从图像中移除黑色斑点之后。这是我取得的进展以及如何移除由于阴影而附加到第一个数字的那些块。

我遇到了 ocr 的问题。第一个和最后两个数字无法正确识别。如何提高ocr的效率。在使用那些我在实时样本数字上出错的数字训练系统后,我得到了正确的结果。

最终的ocr图像:final ocr image

【问题讨论】:

    标签: opencv image-processing computer-vision ocr opencv-contour


    【解决方案1】:

    在没有先验几何知识的情况下移除黑条,我的意思是纯粹的斑点分析,实际上是不可能的。由于底部阴影强烈,也无法避免它们与手指接触。

    我建议尽量找到那些黑条,它们是斑点垂直范围最大的地方。也许也可以将它们定位在通过对列取平均值获得的配置文件中(六个强局部最小值)。

    当您水平放置这些条时,您可以通过填充白色矩形将它们从原始图像中删除。您还可以将它们垂直定位在各自的切片中,并使用此信息执行纠偏,然后进行擦除。您还可以预测最左边和最右边的空隙的位置。

    这是你可以达到的结果:

    【讨论】:

    • 感谢您的回复,我知道您可以通过黑色像素的垂直计数来检测斑点。但我无法完美移除斑点。您可以参考我帖子中的更新图像.首先,我实现了 1) 二进制阈值 2) getRotation2Dmatrix 和 wrapAffine 函数用于纠偏 3) 我编写了一个小代码来检测 blob 4) 用空格替换了这些 blob。我认为最后一步不正常。
    • 如果您使用的是opencv或matlab。请分享您的实施步骤。
    • @PraveenGadiyaram:我没有,我用的是我自己的软件。你的擦除条纹太窄了,你为什么不把它们放大呢?
    • 先生,我已经放大了白色重叠块并更新了帖子中的图像。我通过检查所有块的轮廓区域来删除小斑点。但我无法消除来自阴影的第一个数字的噪音。谢谢你
    • 先生您知道这些数字的字体样式吗
    猜你喜欢
    • 2017-07-05
    • 1970-01-01
    • 1970-01-01
    • 2021-02-28
    • 1970-01-01
    • 2014-05-22
    • 2023-04-05
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多