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 threading多线程编程实例
Sep 18 Python
解决PyCharm的Python.exe已经停止工作的问题
Nov 29 Python
python 用下标截取字符串的实例
Dec 25 Python
使用python itchat包爬取微信好友头像形成矩形头像集的方法
Feb 21 Python
pytorch程序异常后删除占用的显存操作
Jan 13 Python
Python MySQL 日期时间格式化作为参数的操作
Mar 02 Python
浅谈python3打包与拆包在函数的应用详解
May 02 Python
Python如何在main中调用函数内的函数方式
Jun 01 Python
keras的siamese(孪生网络)实现案例
Jun 12 Python
python通配符之glob模块的使用详解
Apr 24 Python
pytorch常用数据类型所占字节数对照表一览
May 17 Python
python调用ffmpeg命令行工具便捷操作视频示例实现过程
Nov 01 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自定义大小验证码的方法详解
2013/06/07 PHP
php-beanstalkd消息队列类实例分享
2017/07/19 PHP
JavaScript 设计模式学习 Singleton
2009/07/27 Javascript
jquery 可排列的表实现代码
2009/11/13 Javascript
jQuery下的几个你可能没用过的功能
2010/08/29 Javascript
电子商务网站上的常用的js放大镜效果
2011/12/08 Javascript
解析Jquery的LigerUI如何实现文件上传
2013/07/09 Javascript
js/jquery解析json和数组格式的方法详解
2014/01/09 Javascript
jQuery 过滤方法filter()选择具有特殊属性的元素
2014/06/15 Javascript
解决js下referer兼容各大浏览器的方法
2014/11/03 Javascript
javascript处理a标签超链接默认事件的方法
2015/06/29 Javascript
jquery实现简易的移动端验证表单
2015/11/08 Javascript
微信小程序 picker-view 组件详解及简单实例
2017/01/10 Javascript
Javascript中document.referrer隐藏来源的方法
2017/01/16 Javascript
详解React-Native解决键盘遮挡问题(Keyboard遮挡问题)
2017/07/13 Javascript
js 两个日期比较相差多少天的实例
2017/10/19 Javascript
Angular中支持SCSS的方法
2017/11/18 Javascript
vue+iview写个弹框的示例代码
2017/12/05 Javascript
JS实现为动态添加的元素增加事件功能示例【基于事件委托】
2018/03/21 Javascript
微信小程序项目实践之九宫格实现及item跳转功能
2018/07/19 Javascript
通过JQuery,JQueryUI和Jsplumb实现拖拽模块
2019/06/18 jQuery
JS将时间秒转换成天小时分钟秒的字符串
2019/07/10 Javascript
Python中的XML库4Suite Server的介绍
2015/04/14 Python
Perl中著名的Schwartzian转换问题解决实现
2015/06/02 Python
django.db.utils.ProgrammingError: (1146, u“Table‘’ doesn’t exist”)问题的解决
2018/07/13 Python
详解用python计算阶乘的几种方法
2019/08/14 Python
python基于FTP实现文件传输相关功能代码实例
2019/09/28 Python
基于python代码批量处理图片resize
2020/06/04 Python
python操作toml文件的示例代码
2020/11/27 Python
分享8款纯CSS3实现的搜索框功能
2017/09/14 HTML / CSS
如何在.net Winform里面显示PDF文档
2012/09/11 面试题
函授大学生自我鉴定
2014/02/05 职场文书
人力资源管理系自荐信
2014/05/31 职场文书
2016年大学迎新工作总结
2015/10/14 职场文书
校运会班级霸气口号
2015/12/24 职场文书
Python 第三方库 openpyxl 的安装过程
2022/12/24 Python