为NXT砖分组RGB颜色
-
12-12-2019 - |
题
我正在尝试在NXTLOGO中编写一个扩展名为NXT BLICK。连接砖块,我正在使用lejos。我有颜色传感器的问题。我想编写一种简单的方法,它将传感器颜色返回为黄色:1,红色:2等的数字,但传感器电机始终在同一表面上返回不同的RGB颜色。例如,我将其放在黄色纸上,RGB颜色是:[236 189 104],[247 202 108] ..如果它返回相同的表面颜色的唯一RGB号码,我会根据RGB颜色范围对它们进行分类,并给予它们每种颜色的唯一编号。你有什么想法我可以做到吗?此外,它不会在不同的表面上运行。只为我的纸质(黄色,蓝色,绿色)只这样做,对我来说就足够了。谢谢。
解决方案
如果我正确地理解你的意思,方法 java.awt.color.rgbtohsb 可能对您有所帮助。Java代码如下:
float[] hsb = Color.RGBtoHSB(red, green, blue, null);
float hue = hsb[0];
.
(其中red
,green
和blue
是包含传感器结果的变量)
...将使颜色的“色调”作为0到1之间的生成acodeTagcode,这应该足以看看它是否是一个黄色,蓝色,绿色或其他东西,如果您定义适当的范围。这应该是非常近似的东西:
Yellow: 0.1 < hue < 0.2
Blue: 0.5 < hue < 0.7
Green: 0.25 < hue < 0.45
.
......但不要把我的话拿它!您应该尝试看看您的传感器在黄色纸张等时的范围内。
不隶属于 StackOverflow