【问题标题】:Why negative image is used in preprocessing?为什么在预处理中使用负图像?
【发布时间】:2015-04-09 20:15:29
【问题描述】:

我观察到,对于许多预处理操作(我的意思主要是 OCR 的预处理),通常使用负图像?

例如: http://felix.abecassis.me/2011/10/opencv-rotation-deskewing/ http://felix.abecassis.me/2011/09/opencv-detect-skew-angle/

当使用 kNN 算法找到对象时,我也发现了它。

为什么使用倒置图像?这只是为了表明它只是预处理步骤吗?使用倒置图像有什么好处吗?

【问题讨论】:

  • 图像被转换为​​二进制掩码,其中 0 = false = 无前景,>0 = true = 前景

标签: c++ opencv image-processing ocr image-recognition


【解决方案1】:

鉴于second example you linked,答案或多或少:

在图像处理中,物体是白色的,背景是黑色的, 我们有相反的情况,我们需要反转图像的颜色

按照惯例,大多数图像处理检测算法都假定要检测的内容是白色的,而背景是黑色的。然而,现实世界中的大多数文本都是白色背景上的黑色文本,例如一本书的一页,因此需要反转许多现实世界的图像以匹配图像检测算法的假设。

【讨论】:

    【解决方案2】:

    不,使用倒置图像严格来说没有任何优势。线性滤波和边缘检测对对比度反转严格不敏感。形态滤波器总是以双对(两个极性)定义。二值化和斑点分析也与对比度无关。 (当然假设您正确关联了背景/前景和黑/白。)完全对称。

    某些文本以黑底白字显示的原因通常纯粹是为了实用:您可以看到感兴趣区域的界限! (其他原因可能是手头的库只是缺少白色背景的选项。)

    【讨论】:

      【解决方案3】:

      黑白图像在处理时比彩色图像更方便。

      【讨论】:

        【解决方案4】:

        在 OCR 和文档处理行业工作了 19 年,这是我第一次听到这个。它可能是特定于工具的,但绝对不是一种广泛接受的做法。所有图像预处理都发生在我们使用的商业 OCR 包中的普通黑白图像上,代表真实世界的文档。在低对比度的情况下可以尝试反转,但这种情况很少见。

        我仍然每天都在学习新东西。是否有其他经常使用此方法的参考资料?

        【讨论】:

          猜你喜欢
          • 2016-07-13
          • 1970-01-01
          • 1970-01-01
          • 2020-12-29
          • 2022-01-18
          • 1970-01-01
          • 1970-01-01
          • 2018-09-22
          • 2021-10-19
          相关资源
          最近更新 更多