输入打印到分数系统

时间:2015-05-16 03:40:33

标签: python input blob rgb simplecv

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

任何帮助,指导,链接等都会受到赞赏,初学者在这里。

2 个答案:

答案 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中,则会出现异常。