创建一副白色图像,大小为宽400,高300, (1)当鼠标左键点击图像时,在图像上显示出当前鼠标左键点击的次数;即每点击一次,数字加1。 (2)当按Esc键时,退出程序 用opencv写出python代码
时间: 2024-12-23 16:20:25 浏览: 9
以下是使用OpenCV和Python实现上述功能的代码:
```python
import cv2
import numpy as np
from pynput.mouse import Controller
# 初始化鼠标控制器
mouse = Controller()
# 设置图像尺寸
img_width = 400
img_height = 300
image = np.zeros((img_height, img_width, 3), dtype=np.uint8) # 白色背景
# 将图像转换为灰度模式便于处理鼠标的点击事件
gray_image = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY)
# 创建一个文本窗口显示点击计数
cv2.namedWindow('Click Counter', cv2.WINDOW_NORMAL)
cv2.moveWindow('Click Counter', 10, 10)
click_count = 0
font = cv2.FONT_HERSHEY_SIMPLEX
text_color = (0, 0, 255) # 红色字体
while True:
# 读取鼠标位置并处理左键点击事件
event, x, y, _, _ = cv2.getMouseState()
if event == cv2.EVENT_LBUTTONDOWN:
click_count += 1
cv2.putText(gray_image, str(click_count), (x, y), font, 1, text_color, 2)
# 显示图像
cv2.imshow('Click Counter', gray_image)
# 检查Esc键是否按下
key = cv2.waitKey(1) & 0xFF
if key == 27: # Esc键对应ASCII码27
break
# 更新鼠标位置到屏幕坐标系
mouse.position = (x, y)
cv2.destroyAllWindows()
```
这段代码首先创建了一个全白的400x300图像,并将其转换为灰度。它监听鼠标左键点击事件,每当点击时更新图像并在相应位置显示点击计数。用户可以按Esc键退出程序。
阅读全文