1. 简介
本文将详细介绍如何使用OpenCV库实现一个简单的画板功能。通过这个画板,用户可以在一个窗口内使用鼠标进行绘图操作,包括绘制线条、矩形和圆形等元素,同时还可以选择不同的颜色和画笔大小。
2. 环境搭建
2.1 安装OpenCV
首先,确保你的电脑上已经安装了Python,并且在终端中可以使用pip命令。然后执行以下命令来安装OpenCV库:
pip install opencv-python
安装完成后,我们就可以开始编写代码了。
3. 创建画板窗口
3.1 导入必要的库
import cv2
import numpy as np
# 创建一个空白的画板窗口
canvas = np.ones([500,500,3],'uint8') * 255
window_name = 'Drawing Board'
# 变量初始化
drawing = False # 是否正在绘图
mode = True # True表示绘制矩形,False表示绘制圆形
ix,iy = -1,-1
# 颜色和线条大小
color = (0,0,0)
thickness = 1
# 鼠标回调函数
def draw(event,x,y,flags,param):
global ix, iy, drawing, mode, color, thickness
if event == cv2.EVENT_LBUTTONDOWN:
drawing = True
ix,iy = x,y
cv2.circle(canvas,(ix,iy),thickness,color,-1) # 画一个实心圆作为起点
elif event == cv2.EVENT_MOUSEMOVE:
if drawing == True:
if mode == True:
cv2.rectangle(canvas,(ix,iy),(x,y),color,-1) # 绘制矩形
else:
cv2.circle(canvas,(x,y),thickness,color,-1) # 绘制圆形
elif event == cv2.EVENT_LBUTTONUP:
drawing = False
if mode == True:
cv2.rectangle(canvas,(ix,iy),(x,y),color,-1) # 绘制最终的矩形
else:
cv2.circle(canvas,(x,y),thickness,color,-1) # 绘制最终的圆形
# 创建窗口和绑定鼠标回调函数
cv2.namedWindow(window_name)
cv2.setMouseCallback(window_name,draw)
# 显示画板
while True:
cv2.imshow(window_name, canvas)
if cv2.waitKey(1) & 0xFF == 27:
break
# 关闭窗口
cv2.destroyAllWindows()
文章到此结束。