Java 如何检测图像的黄色程度

Java 如何检测图像的黄色程度,java,android,Java,Android,我想忽略所有其他颜色。我只想数一数白色和黄色之间的颜色(亮黄色、浅黄色……一直到白色)。然后给出某个图像的黄色等级。可能吗 我一直在玩位图.getPixel(),但我不知道如何忽略其他颜色 在本例中,选择图像1是因为它的颜色介于亮黄色和白色之间 我怎样才能只检测黄色?我会关注像素的色调。使用此代码: // get HSV values for the pixel's colour float[] pixelColorHsv = new float[3]; Color.colorToHSV(Bi

我想忽略所有其他颜色。我只想数一数白色和黄色之间的颜色(亮黄色、浅黄色……一直到白色)。然后给出某个图像的黄色等级。可能吗

我一直在玩位图.getPixel(),但我不知道如何忽略其他颜色

在本例中,选择图像1是因为它的颜色介于亮黄色和白色之间


我怎样才能只检测黄色?

我会关注像素的色调。使用此代码:

// get HSV values for the pixel's colour
float[] pixelColorHsv = new float[3];
Color.colorToHSV(Bitmap.getPixel(x,y), pixelColorHsv);

什么是黄色可能取决于你,但范围可能在72到49之间(你可以通过玩来获得想法),然后你可以量化它在这个范围内的位置,或者亮度和饱和度的高低。

我会关注像素的色调。使用此代码:

// get HSV values for the pixel's colour
float[] pixelColorHsv = new float[3];
Color.colorToHSV(Bitmap.getPixel(x,y), pixelColorHsv);

什么是黄色可能取决于您,但范围可能在72到49之间(您可以通过玩来获得想法),然后您可以量化它在该范围内的位置,或者亮度和饱和度的高低。

位图。getPixel(int x,int y)方法返回一个带有该像素RGB值的
颜色
对象。黄色是红色和绿色的组合,所以直接的黄色RGB三元组应该是(255,255,0),对吗?如果颜色变暗,则会降低红色和绿色值。如果亮度变亮,则显示蓝色值。因此,基本上,您需要找到一种方法来检测任何给定像素的RGB值“接近”到(255,255,0)的程度,然后为整个图像累积这些接近度值。对第二幅图像执行相同操作,然后比较两个结果。

位图。getPixel(int x,int y)方法返回一个带有该像素RGB值的
颜色对象。黄色是红色和绿色的组合,所以直接的黄色RGB三元组应该是(255,255,0),对吗?如果颜色变暗,则会降低红色和绿色值。如果亮度变亮,则显示蓝色值。因此,基本上,您需要找到一种方法来检测任何给定像素的RGB值“接近”到(255,255,0)的程度,然后为整个图像累积这些接近度值。对第二张图像执行同样的操作,然后比较两个结果。

再想一想,Jason的方法可能更容易实现。使用
getPixel
获取
Color
对象,然后使用
Color.colorToHSV
转换为HSV,并将H(色调)与您认为黄色的有效范围进行比较。再想一想,Jason的方法可能更容易实现。使用
getPixel
获取
Color
对象,然后使用
Color.colorToHSV
转换为HSV,并将H(色调)与您认为有效的黄色范围进行比较。