我正在尝试为口袋妖怪黑色制作一个简单的EV训练机器人,该机器人会检查是否通过颜色在屏幕上显示了lillipup。
问题在于,有时出现lillipup时,其颜色会略有不同(显然,不是光泽的)。在任何一个RGB通道中,它可以更高或更低1-3,这使得几乎无法预测。
我尝试过在它们之间进行简单的距离检查(好像它们是3d坐标),但是无论我将阈值设置得多么低,它似乎都不起作用(当阈值为1且lillipups时仍会触发屏幕上没有颜色。
代码(颜色是我正在比较的'默认'lillipup颜色):
color = img.getpixel((x,y))
r1=Color[0]
r2=color[0]
g1=Color[1]
g2=color[1]
b1=Color[2]
b2=color[2]
d=math.sqrt((r1-r2)^2+(g1-g2)^2+(b1-b2)^2)
我在这里做错什么了吗?还是应该以其他方式做这件事?
答案 0 :(得分:0)
对于测量向量之间的相似性,cosine distance比欧几里得距离要好得多。
您可以尝试color quantization。
您可以使用k-means算法。一种实现是在scikit-learn
中您似乎在问一个object recognition问题。这些通常并不琐碎。