>1 当你使用cv2.imshow加载分辨率大于电脑自身的时候,图像只会在显示窗口上展示一部分,因此必须使用resize功能,对图片进行宽高等比缩放,并将最终的缩放图像进行保存。
>2 但该功能有个缺点就是imshow窗口也会跟着移动,并且图片是以(0,0)点进行缩放,缩放后的图像和窗口是粘黏的。
import cv2
import numpy as np
# 初始化缩放比例
scale = 1.0
# 鼠标滚动事件回调函数
def on_mouse_wheel(event, x, y, flags, param):
global scale
if event == cv2.EVENT_LBUTTONDOWN:
scale = 1.0
if event == cv2.EVENT_MOUSEWHEEL:
# 检查滚轮是向上滚动还是向下滚动
if flags > 0: # 向上滚动
scale *= 1.1 # 放大
else: # 向下滚动
scale *= 0.9 # 缩小
scale = max(0.1, min(2.0, scale)) # 限制缩放比例在 0.1 到 2.0 之间
# 读取图像
image = cv2.imread('original.png') # 替换为你的图像路径
if image is None:
print("Error: Image not found.")
exit()
# 创建窗口
cv2.namedWindow('