输入打印评分系统

Input print to score system

我有代码将 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 值等于其他分数)。

初学者,如有任何帮助、指导、链接等,我们将不胜感激。

好吧,您可以定义一些函数,将 rgb 值作为参数,并通过您定义的某些逻辑 returns 该值的分数。

例如:

def RGBtoScore(rgb):
    score = #insert your logic here.
    return score

您可以像这样访问 rgb 值:

rgb[0] #red
rgb[1] #green
rgb[2] #blue

我的回答不是很具体,因为你的问题比较模糊。如果您对此发表评论 post,我会相应地编辑我的答案

定义 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))

您可以利用元组可散列这一事实并将其用作字典键。您可以将它包装在一个函数中,或者直接访问字典,由您决定(显示了两种方法)。

显然,如果该元组在映射中没有条目,您会得到一个异常,但您必须将代码包装在 try/except.