如何测量图像中颜色的强度/饱和度?

信息处理 图像处理 图片 颜色 爪哇
2022-01-24 11:09:09

我的任务是开发一个应用程序来测量图像中颜色的强度。我正在研究如何去做。

强度是指色调的纯度。强度也称为色度或饱和度。色调的最高强度或纯度是它出现在光谱或色轮上的色调。 来源

图像将是 RGB,但我可以将其转换为 HSV 或任何其他颜色空间。

我不是在要求代码,而只是关于如何做到这一点的高级步骤。

我正在考虑为 Java 使用 OpenCV 库。

3个回答

如果透明度为 1,强度是 RGB 值的幅度,因此您可以通过 rgb 值的总和获得亮度,1,1,1 是白色。0,0,0 为黑色。平均整个图像,你就有了它的强度。

它也是 HSV 的 V 值,所以你可以使用 rgb 或 hsv,映射每个像素的平均 v,你也有它的强度。

我认为对于相同的数字级别,蓝色、绿色和红色在眼睛看来是相同的亮度,但是如果眼睛以非线性方式感知到强度差异很小的三者,您可能会得到一些学术研究并绘制图表它的心理强度值取决于颜色。

您可以在此处找到从 RGB 空间到 HSV 的映射: https ://math.stackexchange.com/questions/556341/rgb-to-hsv-color-conversion-algorithm

其他空间可以参考视觉建模教材,即:Digital video quality, Stefan Winkler

感知到的色调和饱和度是另一回事。您不会发现检查 HSV 的组件那么容易。

首先是屏幕颜色传输输出的明显(通常不可观察)因素和您所在房间的环境(点亮的灯?中午?)。

其次,您可以观察到的上下文,即图像的上下文。可以模拟低级到中级的视觉机制来尝试估计感知色调。这也可以一直到高级别的,例如:相同的像素颜色红色可以出现在具有镜面反射的草莓上,就像在谋杀现场中发现的那样...... 是不是很诡异?!