如何在 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()
我正在使用以下代码检测鼠标按钮事件中图像中的坐标:
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()