为什么在预处理中使用负像?

Why negative image is used in preprocessing?

我观察到很多预处理操作(我指的主要是 OCR 的预处理)通常使用负片图像?

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

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

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

答案或多或少给出了 second example you linked:

In image processing, objects are white and the background is black, we have the opposite, we need to invert the colors of our image

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

不,使用倒置图像绝对没有优势。线性过滤和边缘检测对对比度反转完全不敏感。形态过滤器总是以双对(两个极性)定义。二值化和 blob 分析也与对比度无关。 (当然假设你对 background/foreground 和 black/white 进行了正确的关联。)存在完全对称性。

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

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

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

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