python opencv图片imshow怎么实现触摸放大图片功能
时间: 2023-09-02 17:14:47 浏览: 64
基于opencv图片放大
3星 · 编辑精心推荐
要实现触摸放大图片功能,需要用到一些交互式图像显示库,例如`matplotlib`或`pyqtgraph`。以下是使用`matplotlib`实现的示例代码:
```
import cv2
import matplotlib.pyplot as plt
img = cv2.imread('image.jpg')
plt.imshow(img)
ax = plt.gca()
ax.set_xlim([0, img.shape[1]])
ax.set_ylim([img.shape[0], 0])
def onscroll(event):
if event.button == 'up':
scale_factor = 1.1
elif event.button == 'down':
scale_factor = 1 / 1.1
else:
scale_factor = 1
xdata = event.xdata
ydata = event.ydata
xmin, xmax = ax.get_xlim()
ymin, ymax = ax.get_ylim()
new_width = (xmax - xmin) * scale_factor
new_height = (ymax - ymin) * scale_factor
relx = (xmax - xdata) / (xmax - xmin)
rely = (ymax - ydata) / (ymax - ymin)
ax.set_xlim([xdata - new_width * (1 - relx), xdata + new_width * relx])
ax.set_ylim([ydata - new_height * (1 - rely), ydata + new_height * rely])
plt.draw()
plt.connect('scroll_event', onscroll)
plt.show()
```
这个代码会显示一张图片,并且可以通过滚轮缩放和拖动图片。
阅读全文