2015-01-14 35 views
1

我使用下面的代碼來檢測鼠標按鈕事件的圖像中的座標:如何獲得多個按鈕單擊事件在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 

我有兩個問題在這裏。

首先, 而試圖返回x,y定義'on_click'我必須存儲變量x,y,因爲它們不能直接返回。有沒有更好的方法來返回這些變量?

我試過使用下面的函數,但它不能返回值。

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

其次,我想從同一圖像獲得多個座標的座標。 你能告訴我怎麼做?

對我來說,用任何不同的來源顯示/繪製圖像是很好的。我的主要任務是從OpenCV生成的圖像中讀取這個座標。

+0

我使用'打印的x,y'在函數內部,以顯示值。 – skytux

回答

1

大概你想交互式地選擇幾個點,然後用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() 
+0

在我的情況下,使用Ginput似乎是一個非常好的選擇。此外它還有許多其他選項,使任務更輕鬆。謝謝。 –