如何在 Python 中获取多个按钮单击事件

How to get multiple Button Click Events in Python

我正在使用以下代码检测鼠标按钮事件中图像中的坐标:

plt.imshow(img,origin="upper")
connect('button_press_event', on_click)
plt.show()

def on_click(event):
    # get the x and y coords, flip y from top to bottom
    x, y = event.x, event.y

我这里有两个问题。

首先, 在尝试 return x,y 定义 'on_click' 时,我必须存储变量 x,y,因为它们不能直接 returned。 return 这些变量有更好的方法吗?

我试过使用以下函数,但它不能 return 值。

cid= implot.figure.canvas.mpl_connect('button_press_event',onclick)

其次,我想从同一张图片中获取多个点的坐标。 你能告诉我怎么做吗?

我可以 display/plot 任何不同来源的图像。我的主要任务是从 OpenCV 生成的图像中读取坐标。

想必您想要交互式 select 几个点,然后对 x、y 数据做些什么?

如果是这样,您可以考虑改用 plt.ginput()

例如:

import matplotlib.pyplot as plt

fig, ax = plt.subplots()
ax.set(title='Draw a 4-sided polygon by clicking points')
data = plt.ginput(4)

data.append(data[0])
ax.autoscale(False)
ax.fill(*zip(*data))
plt.show()