需结合本栏前两篇博客 如何用OpenCV创建颜色滑动条和 如何用OpenCV处理鼠标事件
import cv2
import numpy as np
def nothing(x):
pass
#当鼠标按下时变为True
drawing = False
#如果 mode 为 true 绘制矩形。按下'm'变成绘制曲线。
mode = True
ix,iy = -1,-1
#创建回调函数
def draw_circle(event,x,y,flags,param):
#为 r,g,b赋值
r = cv2.getTrackbarPos('R','image')
g = cv2.getTrackbarPos('G','image')
b = cv2.getTrackbarPos('B','image')
color = (b,g,r)
global ix,iy,drawing,mode
# 当按下左键是返回起始位置坐标
if event==cv2.EVENT_LBUTTONDOWN:
drawing=True
ix,iy=x,y
#当鼠标左键按下并移动是绘制图形。event可以查看移动,flag查看是否按下。
elif event==cv2.EVENT_MOUSEMOVE and flags == cv2.EVENT_FLAG_LBUTTON:
if drawing == True:
if mode==True: