1

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

仅当红色 RGB 值 > 200 时才假设像素为红色还不够好(请参阅此表)。

那么有没有更好的方法来做到这一点?还是有一些 red-color-rgb 算法?

4

3 回答 3

3

看看YCrCb颜色空间。

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

于 2012-06-16T22:13:10.183 回答
3

将 RGB 转换为HSL,并对色调 (H) 分量进行阈值处理。

于 2012-06-16T22:13:15.490 回答
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

于 2012-06-16T22:20:02.787 回答