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 crontab设置linux定时任务
Dec 08 Python
python安装教程
Feb 28 Python
Python操作mongodb的9个步骤
Jun 04 Python
对PyTorch torch.stack的实例讲解
Jul 30 Python
python简单操作excle的方法
Sep 12 Python
Python基于plotly模块实现的画图操作示例
Jan 23 Python
Python数据可视化:饼状图的实例讲解
Dec 07 Python
Python semaphore evevt生产者消费者模型原理解析
Mar 18 Python
解决python执行较大excel文件openpyxl慢问题
May 15 Python
Python脚本打包成可执行文件过程解析
Oct 20 Python
Python偏函数实现原理及应用
Nov 20 Python
如何利用python实现Simhash算法
Jun 28 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伪造referer实例代码
2008/09/20 PHP
深入浅析PHP7.0新特征(五大新特征)
2015/10/29 PHP
PHP页面间传递值和保持值的方法
2016/08/24 PHP
php多线程并发实现方法
2016/09/30 PHP
PHP错误处理函数register_shutdown_function使用示例
2017/07/03 PHP
thinkPHP5分页功能实现方法分析
2017/10/25 PHP
PHP远程连接oracle数据库操作实现方法图文详解
2019/04/11 PHP
js中使用DOM复制(克隆)指定节点名数据到新的XML文件中的代码
2011/07/27 Javascript
用js判断页面是否加载完成实现代码
2012/12/11 Javascript
通过遮罩层实现浮层DIV登录的js代码
2014/02/07 Javascript
JS中类或对象的定义说明
2014/03/10 Javascript
javascript解决IE6下hover问题的方法
2015/07/28 Javascript
设置jQueryUI DatePicker默认语言为中文
2016/06/04 Javascript
js css+html实现简单的日历
2016/07/14 Javascript
ES6新特性二:Iterator(遍历器)和for-of循环详解
2017/04/20 Javascript
js轮播图透明度切换(带上下页和底部圆点切换)
2017/04/27 Javascript
深入理解Vue生命周期、手动挂载及挂载子组件
2017/09/27 Javascript
仿京东快报向上滚动的实例
2017/12/13 Javascript
JS简单获得节点元素的方法示例
2018/02/10 Javascript
JS删除数组指定值常用方法详解
2020/06/04 Javascript
python 动态获取当前运行的类名和函数名的方法
2014/04/15 Python
详解Python的单元测试
2015/04/28 Python
基于ID3决策树算法的实现(Python版)
2017/05/31 Python
浅析python协程相关概念
2018/01/20 Python
Python基于TCP实现会聊天的小机器人功能示例
2018/04/09 Python
使用Django简单编写一个XSS平台的方法步骤
2019/03/25 Python
Python matplotlib绘制饼状图功能示例
2019/09/10 Python
python3代码输出嵌套式对象实例详解
2020/12/03 Python
俄罗斯优惠券网站:BIGLION
2017/05/21 全球购物
新西兰领先的内衣店:Bendon Lingerie新西兰
2018/07/11 全球购物
现场施工员岗位职责
2015/04/11 职场文书
2015社区精神文明建设工作总结
2015/04/21 职场文书
百万英镑观后感
2015/06/09 职场文书
《一面五星红旗》教学反思
2016/02/23 职场文书
Python爬虫之爬取某文库文档数据
2021/04/21 Python
详解使用内网穿透工具Ngrok代理本地服务
2022/03/31 Servers