网站建设策略,滨州做网站的科技公司,网站静态化对seo,设计公司网页欣赏使用 OpenCV 的 cv2.setMouseCallback() 方法来捕捉鼠标事件#xff0c;并实现以下功能#xff1a;
实时在鼠标指针附近显示其位置的像素坐标。通过左键双击#xff0c;将像素坐标记录到数组中。通过右键点击#xff0c;取消上一次添加的坐标。
下面是实现代码的示例并实现以下功能
实时在鼠标指针附近显示其位置的像素坐标。通过左键双击将像素坐标记录到数组中。通过右键点击取消上一次添加的坐标。
下面是实现代码的示例
import cv2
import numpy as np# 初始化一个数组用于存储点击的坐标
coords []# 鼠标回调函数
def mouse_callback(event, x, y, flags, param):global coords# 左键双击记录坐标if event cv2.EVENT_LBUTTONDBLCLK:coords.append((x, y))print(f记录坐标: {x}, {y})# 右键单击取消上一次记录的坐标elif event cv2.EVENT_RBUTTONDOWN:if coords:removed_coord coords.pop()print(f取消坐标: {removed_coord})# 创建窗口并绑定鼠标回调函数
cv2.namedWindow(Image)
cv2.setMouseCallback(Image, mouse_callback)# 读取图像
img cv2.imread(your_image.jpg)while True:# 在图像上显示鼠标当前位置img_copy img.copy()mouse_x, mouse_y cv2.getWindowImageRect(Image)[:2]# 获取当前鼠标坐标cv2.putText(img_copy, f({mouse_x}, {mouse_y}), (mouse_x 20, mouse_y - 10), cv2.FONT_HERSHEY_SIMPLEX, 0.5, (0, 255, 0), 1)# 显示图像cv2.imshow(Image, img_copy)# 按 q 键退出循环if cv2.waitKey(1) 0xFF ord(q):break# 关闭所有窗口
cv2.destroyAllWindows()# 输出最终记录的坐标
print(最终记录的坐标: , coords)代码说明 鼠标回调函数 mouse_callback 捕捉鼠标的事件包括左键双击和右键点击。左键双击事件 cv2.EVENT_LBUTTONDBLCLK 记录当前的鼠标位置。右键点击事件 cv2.EVENT_RBUTTONDOWN 移除上一次添加的坐标。 cv2.getWindowImageRect() 该函数用于获取窗口图像矩形的尺寸以及鼠标位置。你可以实时显示鼠标坐标。 实时显示鼠标坐标 使用 cv2.putText() 在图像上显示鼠标当前位置。 记录坐标 双击左键时鼠标位置将会被添加到 coords 数组中右键点击则会移除最后一个记录的坐标。 退出 按 q 键退出显示循环并打印最终的坐标。