Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
我需要使用 Java 检测图像中的所有红色像素。最好的方法是什么?
仅当红色 RGB 值 > 200 时才假设像素为红色还不够好(请参阅此表)。
那么有没有更好的方法来做到这一点?还是有一些 red-color-rgb 算法?
看看YCrCb颜色空间。
简单算法:将您的 RGB 图像转换为 YCrCb,提取红色通道并设置阈值。
将 RGB 转换为HSL,并对色调 (H) 分量进行阈值处理。
正如您所建议的,您可能想在 HSB 空间中进行一些比较。您可能希望根据您的期望为所有三个值定义适当的愤怒。
您可以使用Color.RGBtoHSB从给定颜色获取值。
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