python 基于opencv 实现一个鼠标绘图小程序
在画布上用鼠标画图,可以画圆或矩形,按m键在两种模式下切换。左键按下时开始画图,移动到哪儿画到哪儿,左键释放时结束画图。
实现思想用鼠标画图:需要定义鼠标的回调函数mouse_event画圆或矩形:需要定义一个画图的模式mode左键单击、移动、释放:需要捕获三个不同的事件开始画图,结束画图:需要定义一个画图的标记位drawing
实现代码import cv2 as cvimport numpy as npdrawing = False # 是否开始画图mode = True # True:画矩形,False:画圆start = (-1, -1)# 鼠标的回调函数的参数格式是固定的,不要随意更改。def mouse_event(event, x, y, flags, param): global start, drawing, mode # 左键按下:开始画图 if event == cv.EVENT_LBUTTONDOWN: drawing = True start = (x, y) # 鼠标移动,画图 elif event == cv.EVENT_MOUSEMOVE: if drawing: if mode:cv.rectangle(img, start, (x, y), (0, 255, 0), -1) else:cv.circle(img, (x, y), 5, (0, 0, 255), -1) # 左键释放:结束画图 elif event == cv.EVENT_LBUTTONUP: drawing = False if mode: cv.rectangle(img, start, (x, y), (0, 255, 0), -1) else: cv.circle(img, (x, y), 5, (0, 0, 255), -1)img = np.zeros((512, 512, 3), np.uint8)cv.namedWindow(’image’)cv.setMouseCallback(’image’, mouse_event)while(True): cv.imshow(’image’, img) # 按下m切换模式 if cv.waitKey(1) == ord(’m’): mode = not mode # 按ESC键退出程序 elif cv.waitKey(1) == 27: break实验结果

以上就是python 基于opencv 实现一个鼠标绘图小程序的详细内容,更多关于python 鼠标绘图的资料请关注好吧啦网其它相关文章!
相关文章:
1. Python unittest生成测试报告过程解析2. python matplotlib工具栏源码探析二之添加、删除内置工具项的案例3. 如何基于python3和Vue实现AES数据加密4. CSS3实例分享之多重背景的实现(Multiple backgrounds)5. CSS Hack大全-教你如何区分出IE6-IE10、FireFox、Chrome、Opera6. php去掉数组的第一个值的两个函数:array_shift、array_splice7. 解决VUE项目使用Element-ui 下拉组件的验证失效问题8. uni-app结合PHP实现单用户登陆demo及解析9. 数组在java中的扩容的实例方法10. Vue+express+Socket实现聊天功能

网公网安备