参考以上步骤,编写程序完成: (1)生成彩色的白色图像(作为底座),图像形状为200x320x3 (2)鼠标在白色图像当中移动时同步绘制黑色圆点(取半径为3-5均可),如图所示。 (3)鼠标在白色图像当中双击左键时清除绘制的图形,即恢复为白色图像。
时间: 2024-10-11 20:09:22 浏览: 20
CRTS1-static2_轨道板_CRTS1-static2_钢轨_无砟轨道_
根据您的描述,下面是一个使用Python OpenCV实现上述功能的简化示例代码:
```python
import cv2
import numpy as np
# 创建一个200x320的彩色白色图像
img = np.full((200, 320, 3), 255, dtype=np.uint8) # 白色背景,取值范围为0-255,这里直接填255表示白色
# 定义鼠标回调函数
def draw_circle(event, x, y, flags, param):
global img, circle_color, circle_radius
if event == cv2.EVENT_LBUTTONDOWN and flags & cv2.EVENT_FLAG_DOUBLE_CLICK: # 如果左键双击
img[x-5:x+5, y-5:y+5] = 255 # 清除小区域内的颜色,这里假设圆心附近的小区域为圆的颜色
return
if event == cv2.EVENT_LBUTTONDOWN: # 单击左键时
circle_color = (0, 0, 0) # 黑色圆点
circle_radius = 3 # 圆的半径,默认3像素
cv2.circle(img, (x, y), circle_radius, circle_color, -1) # 绘制黑色圆点
cv2.namedWindow('Image')
cv2.setMouseCallback('Image', draw_circle)
while True:
cv2.imshow('Image', img)
if cv2.waitKey(1) & 0xFF == ord('q'): # 按下 'q' 键退出程序
break
cv2.destroyAllWindows()
```
这个程序首先创建了一个200x320的全白图像。在鼠标左键单击时,会绘制一个黑色的圆形,并在双击左键时清除最近一次绘制的圆。请注意,为了实现"双击清除",这个例子中假设圆心周围一个小区域的颜色与圆的颜色一致,实际实现可能需要更复杂的算法判断。运行此程序后,在指定的窗口中,你可以看到图像随着鼠标移动而变化。按'q'键可以退出程序。
阅读全文