一尘不染

如何确定颜色接近白色或黑色?

java

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

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

我尝试了一些笨拙的算法,有人知道我该怎么做吗?


阅读 855

收藏
2020-12-03

共1个答案

一尘不染

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

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

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

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

color c = Y < 128 ? black : white

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

2020-12-03