在Java中仅检测红色像素

时间:2012-06-16 22:10:19

标签: java image-processing colors rgb

我需要使用Java检测图像中的所有红色像素。最好的方法是什么?

当红色RGB值为>时,仅假设像素为红色。 200不够好(见this table)。

那么有更好的方法吗?还是有一些red-color-rgb算法?

3 个答案:

答案 0 :(得分:3)

查看YCrCb色彩空间。

简单算法:将RGB图像转换为YCrCb,提取红色通道并设置阈值。

答案 1 :(得分:3)

将RGB转换为HSL,并为色调(H)分量设置阈值。

答案 2 :(得分:1)

正如您所建议的那样,您可能希望在HSB空间中进行一些比较。您可能希望根据您的期望为所有三个值定义适当的愤怒。

您可以使用Color.RGBtoHSB获取给定颜色的值。

http://docs.oracle.com/javase/7/docs/api/java/awt/Color.html#RGBtoHSB%28int%2C%20int%2C%20int%2C%20float%5B%5D%29