Python图像处理之简单画板实现方法示例


Posted in Python onAugust 30, 2018

本文实例讲述了Python图像处理之简单画板实现方法。分享给大家供大家参考,具体如下:

Python图像处理也是依赖opencv的Python接口实现的,Python语言简单易懂,简洁明了。本次实现画板涂鸦,一个是在里面画矩形,还有画线。其他也都可以扩展,本案例只做例程,思路是对鼠标事件的处理,以及滚动条调节颜色处理。鼠标事件就包含有左键按下,以及释放事件的处理。

import cv2
import numpy as np
# null function
def nothing(x):
  pass
Drawing = False
Mode = True
IX,IY = -1,-1
def drawCircle(Event,X,Y,Flags,Param):
  R = cv2.getTrackbarPos('R','Image')
  G = cv2.getTrackbarPos('G','Image')
  B = cv2.getTrackbarPos('B','Image')
#get color value
  Color = (B,G,R);
  global IX,IY,Drawing,Mode
  if Event == cv2.EVENT_LBUTTONDOWN:
    Drawing = True
    IX,IY = X,Y
  elif Event == cv2.EVENT_MOUSEMOVE and Flags == cv2.EVENT_FLAG_LBUTTON:
    if Drawing == True:
      if Mode == True:
        cv2.rectangle(Img,(IX,IY),(X,Y),Color,-1)
      else:
        cv2.circle(Img,(X,Y),3,Color,-1);
  elif Event == cv2.EVENT_LBUTTONUP:
    Drawing = False
#create image with 3 chanels
Img = np.zeros((660,660,3),np.uint8)
#create window
cv2.namedWindow('Image')
#create track bar, range for 0~255
cv2.createTrackbar('R','Image',0,255,nothing)
cv2.createTrackbar('G','Image',0,255,nothing)
cv2.createTrackbar('B','Image',0,255,nothing)
#set mouse ack
cv2.setMouseCallback('Image',drawCircle)
while(1):
  cv2.imshow('Image',Img)
  k = cv2.waitKey(10)&0xFF
  #switch draw mode
  if k == ord('m'):
    Mode = not Mode
  elif k == 27:
    break
#you must destroy all of sources
cv2.destroyAllWindows()

最后的效果图如下:

Python图像处理之简单画板实现方法示例

希望本文所述对大家Python程序设计有所帮助。

Python 相关文章推荐
Python高级应用实例对比:高效计算大文件中的最长行的长度
Jun 08 Python
Python检测网站链接是否已存在
Apr 07 Python
Python基础篇之初识Python必看攻略
Jun 23 Python
python 简单的绘图工具turtle使用详解
Jun 21 Python
LRUCache的实现原理及利用python实现的方法
Nov 21 Python
python使用PyQt5的简单方法
Feb 27 Python
在macOS上搭建python环境的实现方法
Aug 13 Python
python tkinter组件使用详解
Sep 16 Python
如何利用pygame实现简单的五子棋游戏
Dec 29 Python
python GUI库图形界面开发之PyQt5控件QTableWidget详细使用方法与属性
Feb 25 Python
详解python变量与数据类型
Aug 25 Python
python实现简易自习室座位预约系统
Jun 30 Python
浅析python中numpy包中的argsort函数的使用
Aug 30 #Python
浅析python3中的os.path.dirname(__file__)的使用
Aug 30 #Python
python语音识别实践之百度语音API
Aug 30 #Python
python调用百度语音识别实现大音频文件语音识别功能
Aug 30 #Python
python的中异常处理机制
Aug 30 #Python
python调用百度REST API实现语音识别
Aug 30 #Python
python调用百度语音REST API
Aug 30 #Python
You might like
PHP开发文件系统实例讲解
2006/10/09 PHP
从网上搜到的phpwind 0day的代码
2006/12/07 PHP
ThinkPHP3.2.2实现持久登录(记住我)功能的方法
2016/05/16 PHP
如何使用PHP给图片加水印
2016/10/12 PHP
PHP房贷计算器实例代码,等额本息,等额本金
2017/04/01 PHP
如何在PHP中使用数组
2020/06/09 PHP
收藏Javascript中常用的55个经典技巧
2007/08/12 Javascript
js中生成map对象的方法
2014/01/09 Javascript
JS将所有对象s的属性复制给对象r(原生js+jquery)
2014/01/25 Javascript
Node.js中使用事件发射器模式实现事件绑定详解
2014/08/15 Javascript
Node.js中安全调用系统命令的方法(避免注入安全漏洞)
2014/12/05 Javascript
setTimeout内不支持jquery的选择器的解决方案
2015/04/28 Javascript
JQuery解析XML的方法小结
2016/04/02 Javascript
Javascript实现倒计时(防页面刷新)实例
2016/12/13 Javascript
jquery插件canvaspercent.js实现百分比圆饼效果
2017/07/18 jQuery
jQuery实现checkbox全选功能完整实例
2018/07/12 jQuery
npm 常用命令详解(小结)
2019/01/17 Javascript
layui使用templet格式化表格数据的方法
2019/09/16 Javascript
mpvue实现左侧导航与右侧内容的联动
2019/10/21 Javascript
vue使用一些外部插件及样式的配置代码
2019/11/18 Javascript
JS实现动态无缝轮播
2020/01/11 Javascript
Selenium执行Javascript脚本参数及返回值过程详解
2020/04/01 Javascript
python打开文件并获取文件相关属性的方法
2015/04/23 Python
Python实现查找数组中任意第k大的数字算法示例
2019/01/23 Python
python 实现将Numpy数组保存为图像
2020/01/09 Python
如何通过命令行进入python
2020/07/06 Python
python绕过图片滑动验证码实现爬取PTA所有题目功能 附源码
2021/01/06 Python
Python中正则表达式对单个字符,多个字符和匹配边界等使用
2021/01/27 Python
HTML5 拖放(Drag 和 Drop)详解与实例代码
2017/09/14 HTML / CSS
英国第一摩托车和摩托车越野配件商店:GhostBikes
2019/03/10 全球购物
企业安全生产演讲稿
2014/05/09 职场文书
优秀大学生事迹材料
2014/12/24 职场文书
学生会辞职信
2015/03/02 职场文书
JVM的类加载器和双亲委派模式你了解吗
2022/03/13 Java/Android
MySQL中IO问题的深入分析与优化
2022/04/02 MySQL
java版 联机五子棋游戏
2022/05/04 Java/Android