我正在处理小图像,它们可能是红色、绿色、蓝色或黑色(类似于四色扑克牌中的花色)。有什么好的、快速的算法可以确定图像的颜色?
对于一组示例输入,请参见此处,但图像可能会被缩放等,因此不会那么清晰明了。
对于一组示例输入,请参见此处,但图像可能会被缩放等,因此不会那么清晰明了。
对于一个像素,这个方法运行得足够好:
def get_ishness(r,g,b):
h,s,v = rgb_to_hsv(r,g,b) #h from 0-360, s and v from 0-100
if v < 50: return 'black'
if s < 15: return None
if h < 10: return 'red'
if 80 < h < 100: return 'green'
if 210 < h < 230: return 'blue'
return None
这篇文章似乎已经解决了,但如果您不介意我的两分钱...
我理解您需要一种通用方法,并且您事先不知道图像是什么。虽然已经发布的答案应该足够快速编码,可能需要进行一些调整,但如果您仍然遇到问题,我建议您使用自组织映射:http://davis.wpi.edu/~matt/courses/soms/ 和 http://www.ai-junkie.com/ann/som/som1.html
它可能需要一些(无监督)训练时间才能获得一个不错的地图/识别器(毕竟它是一个神经网络),但我遇到过类似于您的问题,它们对我很有效(易于适应,具有不同的照明灵活性等)。