Jay*_*jey 6 java image colors image-processing
我正在执行一个图像分析项目,该项目检查大量图像中设定位置的 rgb 值,并且需要能够知道某个区域是绿色还是蓝色。最初我认为我可以通过测试是否g>b在 rgb 中来做到这一点,但我已经意识到,由于与红色的混合,绿色图像中的蓝色通常比绿色多。我怎么知道——可能是公式或算法,基于 rgb 的颜色明显看起来是什么?
您可以使用颜色类方法将RGB值转换为值。生成的色调值介于 0-1 之间,绿色 (0,255,0) 的色调值为 0.33,蓝色 (0,0,255) 的色调值为 0.66HSBRGBtoHSB
float[] hsb = Color.RGBtoHSB(0, 255, 0, null);//green
System.out.println(hsb[0]);
hsb = Color.RGBtoHSB(0, 0, 255, null);//blue
System.out.println(hsb[0]);
Run Code Online (Sandbox Code Playgroud)
由此,您可以为“更接近”绿色的色调值创建一个度量,例如任何 < 0.5 的色调值都比蓝色更绿。
下面的图像描述了颜色在该颜色空间中如何变化,色调在 X 轴上(请注意,此图中色调的变化范围为 0-360 度,而返回RGBtoHSB值为 0-1)

| 归档时间: |
|
| 查看次数: |
1297 次 |
| 最近记录: |