颜色空间及颜色空间转换

1.1 颜色空间介绍

RGB 颜色空间是大家最熟悉的颜色空间,即三基色空间,任何一种颜色都可以由该三种 颜色混合而成。然而一般对颜色空间的图像进行有效处理都是在 HSV 空间进行的,HSV(色 调 Hue,饱和度 Saturation,亮度 Value)是根据颜色的直观特性创建的一种颜色空间, 也称六角 锥体模型。
为什么会选择 HSV 空间而不是 RGB 空间? 对于图像而言,识别相应的颜色在 RGB 空间、 HSV 空间或者其它颜色空间都是可行的。之所以选择 HSV,是因为 H 代表的色调基本上可以 确定某种颜色,再结合饱和度和亮度信息判断大于某一个阈值。而 RGB 由三个分量构成, 需要判断每种分量的贡献比例。即 HSV 空间的识别的范围更广,更方便。

在这里插入图片描述1.2 HSV到RGB转换
在这里插入图片描述1.3 RGB到灰度
在这里插入图片描述1.3.1 平均法

平均法将R,G和B的平均值作为灰度值。

灰度=(R + G + B)/ 3

从理论上讲,公式是100%正确的。但是在编写代码时,您可能会遇到uint8溢出错误 - R,G和B的总和大于255.为避免异常,应分别计算R,G和B。

灰度= R / 3 + G / 3 + B / 3

平均法很简单,但效果不如预期。原因是人眼对RGB的反应不同。眼睛对绿光最敏感,对红光不敏感,对蓝光最不敏感。因此,三种颜色在分布上应具有不同的权重。这使我们得到加权方法。

1.3.2 加权法
也称为光度法,根据其波长称重红色,绿色和蓝色。改进后的公式如下:

灰度 = 0.299R + 0.587G + 0.114B

1.4 二值化:灰度到黑/白转换

二值化将灰度图像转换为黑/白图像。该转换在检测斑点方面很有用,并进一步降低了计算复杂度。关键任务是找到合适的阈值。主要有两种方法:

局部阈值  - 逐个像素地计算阈值
全局阈值处理 - 为所有像素计算一次阈值

1.4.1 局部阈值法

利用局部阈值方法,在每个像素处计算阈值,其取决于一些局部统计,例如平均值,范围和像素邻域的方差。将图像分成几个子块,并分析每个块中灰度值的分布。
在这里插入图片描述1.4.2 全局阈值方法

全局阈值处理方法利用图像直方图。图像直方图是一种统计图,在x轴上具有灰度值,在y轴上具有每个灰度的像素数。
在这里插入图片描述图像直方图可用于自动确定用于将灰度图像转换为二值图像的阈值。基本思想是在前景像素值的峰值和背景像素值的峰值之间找到一个点。如果像素的强度等级小于阈值,则将像素设置为黑色(灰度= 0),否则将其设置为白色(灰度= 255)。阈值用作分界线。

版权声明:本文为jiaow原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/jiaow/article/details/105755818