所以我正在尝试编写一个程序来检测图像上的鼠标单击并保存 x,y 位置。我一直在使用 matplotlib 并且它可以处理基本绘图,但是当我尝试对图像使用相同的代码时,出现以下错误:
cid = implot.canvas.mpl_connect('button_press_event', onclick)
“AxesImage”对象没有属性“canvas”
这是我的代码:
import matplotlib.pyplot as plt
im = plt.imread('image.PNG')
implot = plt.imshow(im)
def onclick(event):
if event.xdata != None and event.ydata != None:
print(event.xdata, event.ydata)
cid = implot.canvas.mpl_connect('button_press_event', onclick)
plt.show()
如果您对如何解决此问题有任何想法或有更好的方法来实现我的目标,请告诉我。非常感谢!
问题是implot
是一个子类Artist
这吸引了一个canvas
实例,但不包含(易于访问)对画布的引用。您正在寻找的属性是figure
class.
你想做:
ax = plt.gca()
fig = plt.gcf()
implot = ax.imshow(im)
def onclick(event):
if event.xdata != None and event.ydata != None:
print(event.xdata, event.ydata)
cid = fig.canvas.mpl_connect('button_press_event', onclick)
plt.show()
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)