为什么我们应该使用灰度图像处理

Tia*_*nto 27 image-processing

我认为这可能是一个愚蠢的问题但是在阅读了很多并且搜索了大量关于图像处理的每个例子后我看到图像处理使用灰度工作

我知道灰度图像只使用一个颜色通道,通常只需要8位表示等等...但是,为什么在我们有彩色图像时使用灰度?灰度等级有哪些优点?我可以想象这是因为我们有更少的东西可以治疗,但即使在今天使用更快的计算机,这是必要的吗?

我不确定我是否清楚我的怀疑,我希望有人能回答我

非常感谢你

del*_*eil 23

正如John Zhang解释的那样:

亮度在区分视觉特征方面更为重要

John还给出了一个很好的建议来说明这个特性:拍摄一个给定的图像并将亮度平面与色度平面分开.

为此,您可以使用ImageMagick 单独的运算符,将每个通道的当前内容提取为灰度图像:

convert myimage.gif -colorspace YCbCr -separate sep_YCbCr_%d.gif
Run Code Online (Sandbox Code Playgroud)

这是它在样本图像上给出的内容(左上角:原始彩色图像,右上角:亮度平面,底行:色度平面):

在此输入图像描述


Ret*_*unk 21

详细说明deltheil的答案:

  1. 信噪比.对于图像处理的许多应用,颜色信息不能帮助我们识别重要的边缘或其他特征.也有例外.如果在灰度图像中难以检测到的色调中存在边缘(像素值的阶跃变化),或者如果我们需要识别已知色调的对象(绿叶前面的橙色水果),则颜色信息可以是有用.如果我们不需要颜色,那么我们可以将其视为噪音.起初,它与灰度中的"思考"有点违反直觉,但你已经习惯了.
  2. 代码的复杂性.如果你想根据亮度和色度找到边缘,你就会有更多的工作要做.如果额外的颜色信息对感兴趣的应用程序没有帮助,那么额外的工作(以及额外的调试,支持软件的额外痛苦等)很难证明是合理的.
  3. 对于学习图像处理,最好首先理解灰度处理并理解它如何应用于多通道处理,而不是从全彩色成像开始,并且缺少可以(并且应该)从单通道处理中学习的所有重要见解.
  4. 可视化的难度.在灰度图像中,分水岭算法相当容易概念化,因为我们可以将两个空间维度和一个亮度维度视为具有丘陵,山谷,集水盆地,山脊等的3D图像."峰值亮度"只是一个山峰在我们的灰度图像的3D可视化中.有许多算法可以直观的"物理"解释帮助我们思考问题.在RGB,HSI,Lab和其他色彩空间中,这种可视化更加困难,因为标准人类大脑无法轻易实现其他尺寸.当然,我们可以想到"峰值发红",但这个山峰在(x,y,h,s,i)空间中看起来是什么样的?哎哟.一种解决方法是将每个颜色变量视为强度图像,但这会导致我们回到灰度图像处理.
  5. 颜色很复杂.人类通过欺骗性的方式感知颜色并识别颜色.如果您开始尝试区分颜色,那么您要么(a)遵循传统并控制照明,相机颜色校准和其他因素以确保最佳效果,或(b)解决对于一个事业的漫长旅程,你会越深入了解它,或者(c)希望你能够重新使用灰度,因为至少问题似乎是可以解决的.
  6. 速度.使用现代计算机和并行编程,可以在几毫秒内对百万像素图像执行简单的逐像素处理.面部识别,OCR,内容感知调整大小,平均移位分段和其他任务可能需要更长的时间.无论处理图像或从中挤出一些有用的数据需要多长的处理时间,大多数客户/用户都希望它更快.如果我们做出手工假设处理三通道彩色图像的时间是处理灰度图像的三倍 - 或者可能是四倍长,因为我们可能会创建一个单独的亮度通道 - 那么这不是很大如果我们正在处理视频图像,并且每帧可以在不到1/30或1/25秒内处理,那么就可以处理.但是,如果我们从数据库中分析数千张图像,那么通过调整图像大小,仅分析图像部分和/或消除我们不需要的颜色通道,我们可以节省处理时间,这是非常好的.将处理时间缩短三到四倍可能意味着在您重新开始工作之前运行8小时夜间测试,以及让计算机的处理器连续24小时固定.

在所有这些中,我将强调前两个:使图像更简单,并减少您必须编写的代码量.