我有代码将x y坐标与另一个坐标进行比较,并将RGB值打印到终端。如何将RGB值用作评分系统的输入?
img = Image('/home/pi/Desktop/DartProj/DartConvert/dart1blob.jpg')
blobs = img.findBlobs()
first_blob = blobs[0] if blobs else None
if first_blob:
pixcol = Image('/home/pi/Desktop/DartProj/Score/ColourScoreBoard.jpg')
colrgb = pixcol[first_blob.x, first_blob.y]
print colrgb
上面的代码将RGB值打印到终端,例如。 (63.0,71.0,204.0) - 一片蓝色。如何使该特定RGB值等于20(其他RGB值与其他分数相等)。
任何帮助,指导,链接等都会受到赞赏,初学者在这里。
答案 0 :(得分:1)
您可以定义一些函数,该函数将rgb值作为参数,并通过您定义的某个逻辑返回该值的分数。
例如:
def RGBtoScore(rgb):
score = #insert your logic here.
return score
您可以像这样访问rgb值:
rgb[0] #red
rgb[1] #green
rgb[2] #blue
我的回答并不是很具体,因为你的问题很模糊。如果你对这篇文章发表评论,我会相应地编辑我的答案
答案 1 :(得分:1)
定义rgb元组和分数之间的映射。下面是一个示例,您必须使用您在电路板上知道的rgb值来实现完整映射。
rgbmap = { (255, 255, 255): 60, (0, 0, 0): 20, (0, 0, 255): 2}
def getscoreforrgb(rgb):
return rgbmap[rgb]
print "score for 255, 255, 255 is ", rgbmap[(255, 255, 255)]
print "score for 0, 0, 0 is ", getscoreforrgb((0, 0, 0))
您可以利用元组可以清除的事实并将其用作字典键。你可以将它包装在一个函数中,或者直接访问dict,直到你(显示的两种方法)。
显然,如果该元组在地图中没有条目但您必须将代码包装在try / except中,则会出现异常。