【问题标题】:Why everybody convert image to gray-scale before performing operations on openCV为什么每个人都在对 openCV 执行操作之前将图像转换为灰度
【发布时间】:2020-01-14 08:23:05
【问题描述】:

一直试图找出为什么每个人都会在处理之前将图像转换为灰度的答案?

例如,this website 带有指导人们如何构建简单扫描程序的说明,它首先将照片转换为灰度,然后再传递命令来操作图像本身。

在第二个示例中,this thread on stackoverflow 显示一个人在从他的图像中提取文本之前也将图像转换为灰度。

此过程是否使图像更易于操作?还是在提取文本时会提供更好的结果?如果是这样,在提取文本的情况下,二进制图像不应该给出最好的结果吗?

【问题讨论】:

  • 不应将转换为灰度视为必要的第一步和解决所有问题的灵丹妙药,因为颜色信息通常很有用。我怀疑大多数人这样做是为了节省 2/3 的内存或 2/3 的处理时间。
  • 是的,这使得图像更易于操作,特别适用于阈值处理、形态学操作、对比度增强和形状分析等过程。彩色图像更适合图像分割、人脸检测等更复杂的操作。
  • 文献中的许多算法仅适用于图像强度。
  • 此外,颜色可能会产生误导,因为有色光经常会改变场景的颜色外观。有时这可以通过白平衡或图像归一化来解决,但这并不总是正确的。
  • 我有时将图像转换为灰度的另一个原因是为了获得更清晰的图像。原因是除了最昂贵的相机之外,所有相机都有色差。这有效地将红色和蓝色通道放大了几个像素。在这些情况下,我选择绿色通道,因为它不仅像差最小,而且噪音也最小。在这种情况下,仅采用加权灰度实际上会使图像更加模糊,离中心越远。

标签: image opencv image-processing


【解决方案1】:

灰度通常拥有完成特定任务的所有相关信息。因此将图像降低为灰度可以极大地简化计算并消除冗余。

二进制图像也很棒,但它牺牲了太多信息,以至于在许多情况下都没有用。无论如何,大多数库都支持至少 8 位图像处理,以便真正的二进制数据结构有用。

想象一下,必须创建一个程序来识别纸上的文字。拥有彩色图像并不能帮助您更好地阅读文本。文本可以是各种颜色,但即使是黑白文本,您也可以阅读文本。您可以争辩说二值图像也应该提供相同的性能,如果纸上没有阴影等噪声,这是正确的。

一旦图像上存在噪声元素,您将需要更多信息来将文本与噪声区分开来,这就是灰度有用的时候。

此外,用于高级图像处理的最常用和最可靠的信息是边缘及其纹理。两者都可以从灰度图像中获得。

【讨论】:

    猜你喜欢
    • 2015-10-07
    • 1970-01-01
    • 1970-01-01
    • 2019-10-16
    • 2020-01-07
    • 2010-11-20
    相关资源
    最近更新 更多