python中Matplotlib库显示界面中进行鼠标交互绘制操作

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/Dream__TT/article/details/73473388

近期在用Python做医学图像处理系统制作,逐步跟大家分享我遇到的问题以及解决方案。今天来跟大家说一下在matplotlib库显示界面中进行鼠标交互绘制等操作。

先上图,下图为用matplotlib进行显示的脊柱图像(.dicom格式),后期跟大家介绍.dicom文件的读取以及相应图像处理方式。

本文要做的就是在此界面用鼠标进行交互绘制操作。

#鼠标事件
def OnClick(event):
    global Coords1x,Coords1y
    global Coords3x,Coords3y
    #ax = plt.gca()
    if event.button ==1:
        Coords1x = event.xdata
        Coords1y = event.ydata
    if event.button == 3:
        Coords3x = event.xdata
        Coords3y = event.ydata
def OnMouseMotion(event):
    global Coords2x,Coords2y,x1,y1
    if event.button == 1:
        Coords2x = event.xdata
        Coords2y = event.ydata
        x1 = [Coords1x,Coords2x]
        y1 = [Coords1y,Coords2y]
        ax = plt.gca()
        lines = ax.plot(x1,y1,picker = 20)
        ax.figure.canvas.draw()
        #删除之前的线条,进行更新
        l = lines.pop(0)
        l.remove()
        del l
    elif event.button == 3:
        Coords4x = event.xdata
        Coords4y = event.ydata
        x2 = [Coords3x,Coords4x]
        y2 = [Coords3y,Coords4y]
        ax1 = plt.gca()
        #lines = ax1.plot(x1,y1,picker = 5)
        lines1 = ax1.plot(x2,y2,picker = 20)
        ax1.figure.canvas.draw()
        #删除之前的线条,进行更新
        l = lines1.pop(0)
        l.remove()
        del l
                           ##关联鼠标点击事件
                           fig.canvas.mpl_connect('button_press_event',OnClick)
                           fig.canvas.mpl_connect('motion_notify_event',OnMouseMotion)

完成绘制操作
————————————————
版权声明:本文为CSDN博主「Dream__TT」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/Dream__TT/article/details/73473388

  • 1
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值