鼠标事件

  1. import cv2
  2. events=[i for i in dir(cv2) if 'EVENT'in i]
  3. print events

双击画圆圈

  1. import cv2
  2. import numpy as np
  3. # mouse callback function
  4. def draw_circle(event, x, y, flags, param):
  5. if event == cv2.EVENT_LBUTTONDBLCLK:
  6. cv2.circle(img, (x, y), 100, (255, 0, 0), -1)
  7. # 创建图像与窗口并将窗口与回调函数绑定
  8. img = np.zeros((512, 512, 3), np.uint8)
  9. cv2.namedWindow('image')
  10. cv2.setMouseCallback('image', draw_circle)
  11. while(1):
  12. cv2.imshow('image', img)
  13. if cv2.waitKey(20) & 0xFF == 27:
  14. break
  15. cv2.destroyAllWindows()
  1. import cv2
  2. import numpy as np
  3. # 当鼠标按下时变为 True
  4. drawing = False
  5. # 如果 mode 为 true 绘制矩形。按下'm' 变成绘制曲线。
  6. mode = True
  7. ix, iy = -1, -1
  8. # 创建回调函数
  9. def draw_circle(event, x, y, flags, param):
  10. global ix, iy, drawing, mode
  11. # 当按下左键是返回起始位置坐标
  12. if event == cv2.EVENT_LBUTTONDOWN:
  13. drawing = True
  14. ix, iy = x, y
  15. # 当鼠标左键按下并移动是绘制图形。 event 可以查看移动, flag 查看是否按下
  16. elif event == cv2.EVENT_MOUSEMOVE and flags == cv2.EVENT_FLAG_LBUTTON:
  17. if drawing == True:
  18. if mode == True:
  19. cv2.rectangle(img, (ix, iy), (x, y), (0, 255, 0), -1)
  20. else:
  21. # 绘制圆圈,小圆点连在一起就成了线, 3 代表了笔画的粗细
  22. cv2.circle(img, (x, y), 3, (0, 0, 255), -1)
  23. # 下面注释掉的代码是起始点为圆心,起点到终点为半径的
  24. # r=int(np.sqrt((x-ix)**2+(y-iy)**2))
  25. # cv2.circle(img,(x,y),r,(0,0,255),-1)
  26. # 当鼠标松开停止绘画。
  27. elif event == cv2.EVENT_LBUTTONUP:
  28. drawing == False
  29. # if mode==True:
  30. # cv2.rectangle(img,(ix,iy),(x,y),(0,255,0),-1)
  31. # else:
  32. # cv2.circle(img,(x,y),5,(0,0,255),-1)
  33. img = np.zeros((512, 512, 3), np.uint8)
  34. cv2.namedWindow('image')
  35. cv2.setMouseCallback('image', draw_circle)
  36. while(1):
  37. cv2.imshow('image', img)
  38. k = cv2.waitKey(1) & 0xFF
  39. if k == ord('m'):
  40. mode = not mode
  41. elif k == 27:
  42. break

python opencv:使用鼠标当做画笔的更多相关文章

  1. Opencv笔记(五)——把鼠标当画笔

    学习目标:  学习使用 OpenCV 处理鼠标事件 学会使用函数cv2.setMouseCallback() 简单演示:         首先我们来创建一个鼠标事件回调函数,但鼠标事件发生是他就会被执 ...

  2. .NET + OpenCV & Python + OpenCV 配置

    最近需要做一个图像识别的GUI应用,权衡了Opencv+ 1)QT,2)Python GUI,3).NET后选择了.NET... 本文给出C#+Opencv和Python+Opencv的相应参考,节省 ...

  3. 搭建基于python +opencv+Beautifulsoup+Neurolab机器学习平台

    搭建基于python +opencv+Beautifulsoup+Neurolab机器学习平台 By 子敬叔叔 最近在学习麦好的<机器学习实践指南案例应用解析第二版>,在安装学习环境的时候 ...

  4. RPi 2B python opencv camera demo example

    /************************************************************************************** * RPi 2B pyt ...

  5. Python+OpenCV图像处理(一)

    Python+OpenCV图像处理(一): 读取,写入和展示图片 调用摄像头拍照 调用摄像头录制视频 1. 读取.写入和展示图片 图像读入:cv2.imread() 使用函数cv2.imread() ...

  6. Python直接控制鼠标键盘

    Python直接控制鼠标键盘 之前因为期末的原因已经很久没写博客了,今天博主发现一个好玩的模块PyAutoGUI,借助它可以使用Python脚本直接控制键盘鼠标,感觉可以解决很多无聊的机械运动.这里记 ...

  7. python opencv show图片,debug技巧

    debug的时候可以直接把图片画出来debug. imshow函数就是python opencv的展示图片的函数,第一个是你要起的图片名,第二个是图片本身.waitKey函数是用来展示图片多久的,默认 ...

  8. Python+OpenCV图像处理(一)——读取显示一张图片

    先在此处先声明,后面学习python+opencv图像处理时均参考这位博主的博文https://blog.csdn.net/u011321546/article/category/7495016/2? ...

  9. Python+opencv 图像拼接

    1.http://www.cnblogs.com/skyfsm/p/7411961.html ,给出了很好地拼接算法实现 2.由于不是Python的,所以简单做了一些翻译转成Python+opencv ...

随机推荐

  1. python skimage库的安装

    skimage库需要依赖 numpy+mkl 和scipy 1.打开运行,输入cmd回车,输入python回车,查看python版本

  2. maven web报错:org.apache.jasper.JasperException: Unable to compile class for JSP

    原博文地址:https://blog.csdn.net/ken1583096683/article/details/80837281 maven web项目启动没问题,访问页面就报错:org.apac ...

  3. Lingo简单入门,以及对线性规划做敏感性分析设置

    Lingo中用!表示注释,注释结束用;表示,lingo不区分大小写,运行时会自动统一装换成大写 编程步骤: 1.推算出正确的模型 2.确定描述集,定义集合 3.确定变量 4.正确写出每个式子 常用函数 ...

  4. 使用c#做前台页面

    1.有很多组件,组件右属性,事件 2.在table中,操作用的是图片 3.打开dialog时,其他窗体不能使用 4.在子窗体编辑完,对后台操作后,在父窗体加载一下数据

  5. gnuplot 让您的数据可视化

    https://www.ibm.com/developerworks/cn/linux/l-gnuplot/index.html http://blog.sciencenet.cn/blog-3733 ...

  6. [控制台尊享] MinGW下使用 gotoxy函数

    相信用过Turbo C的童鞋都知道gotoxy这个函数吧,但由于某些原因,windows下的mingw没有直接提供这个函数. 那么gotoxy究竟是干什么的呢?假设你的程序是基于控制台的(就是一个黑窗 ...

  7. es7实现数学乘方

    //math.pow简写方法 console.log(2 ** 6)

  8. 【网易官方】极客战记(codecombat)攻略-地牢-逃脱

    关卡连接: https://codecombat.163.com/play/level/breakout 矮人正在追你,前方道路已被堵死. 简介: 通过攻击 "弱门" 释放盟友,这 ...

  9. 工厂方法模式(JAVA反射)

    简单工厂模式的不足     在简单工厂模式中,只提供了一个工厂类,该工厂类处于对产品类进行实例化的中心位置,它知道每一个产品对象的创建细节,并决定何时实例化哪一个产品类.简单工厂模式最大的缺点是当有新 ...

  10. python开发基础作业02:三级菜单,使用字典dic及列表

    作业要求及提示:三级菜单 ''' 1.三级菜单 2.可依次进入各子菜单 3.菜单能够回到上一级 4.用到知识点:字典.列表.多层循环.函数 条件:基本  if  else 嵌套  if...if... ...