用python实现在地址为"C:\\Users\\11508\\Desktop\\2024-03\\X.bmp"的图像上画一个可以缩放半径的空心圆形,该圆形能够通过鼠标的拖动进行移动改变位置,并能实时显示圆心的坐标
时间: 2024-04-15 19:23:45 浏览: 78
你可以使用Python的OpenCV库来实现在图像上画一个可以缩放半径的空心圆形,并通过鼠标拖动来改变位置并实时显示圆心的坐标。下面是一个简单的示例代码:
```python
import cv2
# 定义全局变量
circle_center = (0, 0)
radius = 50
drawing = False
# 鼠标事件回调函数
def draw_circle(event, x, y, flags, param):
global circle_center, radius, drawing
if event == cv2.EVENT_LBUTTONDOWN:
drawing = True
circle_center = (x, y)
elif event == cv2.EVENT_LBUTTONUP:
drawing = False
elif event == cv2.EVENT_MOUSEMOVE:
if drawing:
radius = int(((x - circle_center) ** 2 + (y - circle_center) ** 2) ** 0.5)
# 创建窗口并设置鼠标事件回调函数
cv2.namedWindow('image')
cv2.setMouseCallback('image', draw_circle)
# 加载图像
image_path = "C:\\Users\\11508\\Desktop\\2024-03\\X.bmp"
image = cv2.imread(image_path)
while True:
# 在图像上绘制圆形
image_copy = image.copy()
cv2.circle(image_copy, circle_center, radius, (0, 255, 0), 2)
# 显示圆心坐标
cv2.putText(image_copy, f"Center: {circle_center}", (10, 30), cv2.FONT_HERSHEY_SIMPLEX, 1, (0, 0, 255), 2)
# 显示图像
cv2.imshow('image', image_copy)
# 按下ESC键退出循环
if cv2.waitKey(1) == 27:
break
# 关闭窗口
cv2.destroyAllWindows()
```
请注意,你需要将代码中的图像路径替换为你实际的图像路径。运行代码后,会弹出一个窗口显示图像,并在图像上绘制一个空心圆形。你可以通过鼠标拖动来改变圆形的位置,并实时显示圆心的坐标。
阅读全文