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使用arp欺骗伪造网关的方法
Apr 24 Python
python实现颜色空间转换程序(Tkinter)
Dec 31 Python
Python实现判断一行代码是否为注释的方法
May 23 Python
Python第三方库h5py_读取mat文件并显示值的方法
Feb 08 Python
如何基于python生成list的所有的子集
Nov 11 Python
python第三方库学习笔记
Feb 07 Python
pandas分批读取大数据集教程
Jun 06 Python
Python Switch Case三种实现方法代码实例
Jun 18 Python
python向企业微信发送文字和图片消息的示例
Sep 28 Python
python MD5加密的示例
Oct 19 Python
在Ubuntu中安装并配置Pycharm教程的实现方法
Jan 06 Python
python中的class_static的@classmethod的巧妙用法
Jun 22 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的几个常用数字判断函数代码
2012/04/24 PHP
Yii清理缓存的方法
2016/01/06 PHP
PHP 进度条函数的简单实例
2017/09/19 PHP
js批量设置样式的三种方法不推荐使用with
2013/02/25 Javascript
让js弹出窗口居前显示的实现方法
2013/07/10 Javascript
js使用正则实现ReplaceAll全部替换的方法
2014/07/18 Javascript
vue2.0 datepicker使用方法
2018/02/04 Javascript
AjaxUpLoad.js实现文件上传
2018/03/05 Javascript
JS实现520 表白简单代码
2018/05/21 Javascript
Vue全局分页组件的实现代码
2018/08/10 Javascript
JS html事件冒泡和事件捕获操作示例
2019/05/01 Javascript
JavaScript封闭函数及常用内置对象示例
2019/05/13 Javascript
jquery制作的移动端购物车效果完整示例
2020/02/24 jQuery
vue-autoui自匹配webapi的UI控件的实现
2020/03/20 Javascript
详解JavaScript 作用域
2020/07/14 Javascript
JS运算符优先级与表达式示例详解
2020/09/04 Javascript
vue 路由meta 设置导航隐藏与显示功能的示例代码
2020/09/04 Javascript
[06:37]2014DOTA2国际邀请赛 昔日王者渴望重回巅峰
2014/07/12 DOTA
Python中实现远程调用(RPC、RMI)简单例子
2014/04/28 Python
用Python实现一个简单的多线程TCP服务器的教程
2015/05/05 Python
Python中对象的引用与复制代码示例
2017/12/04 Python
使用实现pandas读取csv文件指定的前几行
2018/04/20 Python
Django跨域请求问题的解决方法示例
2018/06/16 Python
对python中大文件的导入与导出方法详解
2018/12/28 Python
Python基于Opencv来快速实现人脸识别过程详解(完整版)
2019/07/11 Python
python+opencv像素的加减和加权操作的实现
2019/07/14 Python
使用matplotlib绘制图例标签中带有公式的图
2019/12/13 Python
html标签之Object和EMBED标签详解
2013/07/04 HTML / CSS
英国最红的高街时尚品牌:Topshop
2016/08/05 全球购物
eBay澳大利亚站:eBay.com.au
2018/02/02 全球购物
应届毕业生个人求职自荐信
2014/01/06 职场文书
电脑租赁公司创业计划书
2014/01/08 职场文书
好书伴我成长演讲稿
2014/05/14 职场文书
导师对论文的学术评语
2015/01/04 职场文书
营业员岗位职责范本
2015/04/14 职场文书
看完这篇文章获得一些java if优化技巧
2021/07/15 Java/Android