需要帮助更改 cv2 中的颜色,用户在 tinker 中输入

need help to change colour in cv2, with user input in tinker

我有一个颜色列表:

    red = (50, 50, 255)
    blue = (255, 127, 0)
    dark_blue = (127, 20, 0)
    green = (127, 255, 0)

最初,我设置输出颜色:

    line_colour = red

这在画线时有效:

    cv2.line(img, (x3, y3), (x2, y2), line_colour, 5)

我通过 tinker 扩展了程序以从用户那里获取颜色输入:

    colour_list = ['red', 'blue', 'dark blue', 'green',
           'light green', 'yellow', 'pink', 'black', 'white']

我能得到颜色:

    line_clicked.get()

需要帮助更改 cv2.line(......) 以便使用用户选择的颜色绘制线条颜色。

您可以将所有颜色放入字典中,名称作为键,RGB 作为值。

类似于:

color_dict = {'red': (50, 50, 255),
               'blue' : (255, 127, 0),
               'dark blue': (127, 20, 0)}  # etc...

那么如果你有用户选择的颜色:

selected_colour_name = line_clicked.get()

可以使用字典获取RGB颜色并绘制:

line_colour = colour_dict[selected_colour_name]
cv2.line(img, (x3, y3), (x2, y2), line_colour, 5)