gpt4 book ai didi

python - 如何一次检测一种颜色

转载 作者:行者123 更新时间:2023-12-02 17:21:23 25 4
gpt4 key购买 nike

我需要检测两种颜色,一种接一种。
因此,这是我的程序工作流程的一个示例:
检测并使用特定颜色的物体,在该物体离相机足够近(指定多少)之后,程序应尝试开始寻找另一种颜色。

这是我到目前为止尝试过的

# All python's imports

vs = VideoStream(src=0).start()
# Defining the two colors bound
blueLower = np.array([110, 50, 50])
blueUpper = np.array([130, 255, 255])

greenLower = np.array([29, 86, 6])
greenUpper = np.array([64, 255, 255])

# Defining a function to start the loop so i can later rerun it with different color bounds
def loop(lower, upper):

while True:
....
....

# If the object is close enough, change the loopj arguments to search for a new color
if radius > 250:
loop(greenLower, greenUpper)

发生的情况是,当半径大于250时,它将重新运行原始

最佳答案

您可以使用标准库中的itertools实现此目的(无需安装,只需导入即可)。尽管您可以通过其他方法在两个值之间切换,但这很方便。我更改了代码的某些部分,如果您不了解某些内容,可以告诉我。

import itertools

blueLower = [110, 50, 50]
blueUpper = [130, 255, 255]

greenLower = [29, 86, 6]
greenUpper = [64, 255, 255]

greenBounds = (greenLower, greenUpper)
blueBounds = (blueLower, blueUpper)


def loop(colorBounds, iterator):
radius = 0
lower, upper = colorBounds
print(lower, upper)
while True:
radius += 1
if radius > 250:
loop(iterator(), iterator)

toggle = itertools.cycle([greenBounds, blueBounds]).__next__
loop(greenBounds, toggle)

为了澄清,我出于自己的测试目的添加了 radius=0radius += 1

关于python - 如何一次检测一种颜色,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62031399/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com