用python实现在地址为"C:\\Users\\11508\\Desktop\\2024-03\\X.bmp"的图像上画一个可以通过长按鼠标左键拖拽可移动圆形,并能实时显示圆心的坐标
时间: 2024-04-15 11:23:45 浏览: 19
你可以使用Python的图像处理库OpenCV来实现在图像上画一个可移动的圆形,并实时显示圆心的坐标。下面是一个简单的实现示例:
```python
import cv2
# 定义全局变量
circle_center = (0, 0) # 圆心坐标
is_dragging = False # 是否正在拖拽
# 鼠标事件回调函数
def mouse_callback(event, x, y, flags, param):
global circle_center, is_dragging
if event == cv2.EVENT_LBUTTONDOWN: # 鼠标左键按下
is_dragging = True
circle_center = (x, y)
elif event == cv2.EVENT_LBUTTONUP: # 鼠标左键释放
is_dragging = False
if is_dragging: # 如果正在拖拽,更新圆心坐标
circle_center = (x, y)
# 加载图像
image_path = "C:\\Users\\11508\\Desktop\\2024-03\\X.bmp"
image = cv2.imread(image_path)
# 创建窗口并设置鼠标事件回调函数
cv2.namedWindow("Image")
cv2.setMouseCallback("Image", mouse_callback)
while True:
# 在图像上绘制圆形
cv2.circle(image, circle_center, 50, (0, 255, 0), 2)
# 显示圆心坐标
cv2.putText(image, f"Center: {circle_center}", (10, 30), cv2.FONT_HERSHEY_SIMPLEX, 1, (0, 0, 255), 2)
# 显示图像
cv2.imshow("Image", image)
# 按下ESC键退出循环
if cv2.waitKey(1) == 27:
break
# 释放窗口和图像资源
cv2.destroyAllWindows()
```
这段代码使用OpenCV库加载指定路径的图像,并创建一个窗口用于显示图像。通过鼠标事件回调函数,可以实现在图像上画一个可移动的圆形,并实时显示圆心的坐标。你可以通过长按鼠标左键来拖拽圆形,松开鼠标左键后停止拖拽。