matplotlib实现鼠标方法缩小功能

本文介绍了一种使用Python的OpenCV库读取图像,并利用matplotlib库进行图像显示的方法。通过定义回调函数处理鼠标滚轮事件,实现了图像的动态缩放功能。此外,还介绍了如何响应鼠标点击事件,为图像交互提供了更多可能。

im1 = cv2.imread(imgpath)##imgpath为图像路径
fig = plt.figure()

    def call_back(event):
        axtemp = event.inaxes
        base_scale=2
        x_min, x_max = axtemp.get_xlim()##获取x轴范围
        y_min, y_max = axtemp.get_ylim()##获取y轴范围
        fanwei_x = (x_max - x_min)/2#范围缩放
        fanwei_y = (y_max - y_min)/2
        xdata = event.xdata  # get event x location
        ydata = event.ydata  # get event y location
        if event.button == 'up':
            # deal with zoom in
            scale_factor = 1 / base_scale
        elif event.button == 'down':
            # deal with zoom out
            scale_factor = base_scale
        else:
            # deal with something that should never happen
            scale_factor = 1
            print( event.button)

        axtemp.set(xlim=(xdata - fanwei_x*scale_factor, xdata + fanwei_x *scale_factor))
        axtemp.set(ylim=(ydata - fanwei_y*scale_factor , ydata +fanwei_y*scale_factor))
        #     axtemp.set(ylim=(ydata  - fanwei_y*2, ydata  + fanwei_y*2))
        fig.canvas.draw_idle()  # 绘图动作实时反映在图像上

    fig.canvas.mpl_connect('scroll_event', call_back)
    fig.canvas.mpl_connect('button_press_event', call_back)
    plt.imshow(im1)
	plt,show()
评论 2
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值