如何确定颜色是更接近白色还是黑色?

2022-09-02 02:49:22

我正在处理图像,并希望确定一组像素是否更接近白色或黑色。

那么给定一组颜色/像素,如何确定它们更接近白色还是黑色?

我尝试过一些新手算法,有人知道我该怎么做吗?


答案 1

我想说的是,您可以先将颜色转换为灰度,然后检查它是否更接近黑色或白色。

首先通过以下公式转换 RGB 颜色值以计算亮度

Y = 0.2126*R + 0.7152*G + 0.0722*B

然后检查该值是否更接近0或255,并相应地选择黑色或白色

color c = Y < 128 ? black : white

请注意,如果色彩空间未压缩,则此方法效果很好,否则您必须在计算亮度之前添加一个步骤,即伽玛扩展,计算Y,然后执行伽玛压缩以获得非线性亮度值,然后您可以使用该值来确定颜色是否更接近黑色或白色。


答案 2

看看YCbCr。由于Java和大多数计算机处理RGB格式的颜色,因此您需要从RGB到YCbCr进行一些转换。有许多公式可以将RGB转换为YCbCr。

获得YCbCr值后,可以检查亮度值(YCbCr中的值Y)。