基于opencv实现简单画板功能详解

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()

文章到此结束。

后端开发标签