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 相关文章推荐
浅谈django开发者模式中的autoreload是如何实现的
Aug 18 Python
从头学Python之编写可执行的.py文件
Nov 28 Python
Python爬虫包BeautifulSoup异常处理(二)
Jun 17 Python
opencv实现图片模糊和锐化操作
Nov 19 Python
Pytorch 实现自定义参数层的例子
Aug 17 Python
解决django后台管理界面添加中文内容乱码问题
Nov 15 Python
使用Python生成200个激活码的实现方法
Nov 22 Python
Python内置方法实现字符串的秘钥加解密(推荐)
Dec 09 Python
如何基于python实现画不同品种的樱花树
Jan 03 Python
PythonPC客户端自动化实现原理(pywinauto)
May 28 Python
Python解析m3u8拼接下载mp4视频文件的示例代码
Mar 03 Python
python运算符之与用户交互
Apr 13 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
让网页根据不同IE版本显示不同的内容
2009/02/08 Javascript
JavaScript Event学习第八章 事件的顺序
2010/02/07 Javascript
一行代码实现纯数据json对象的深度克隆实现思路
2013/01/09 Javascript
javascript中AJAX用法实例分析
2015/01/30 Javascript
BootStrapTable服务器分页实例解析
2016/12/20 Javascript
jQuery插件zTree实现删除树子节点的方法示例
2017/03/08 Javascript
vue awesome swiper异步加载数据出现的bug问题
2018/07/03 Javascript
vue2实现搜索结果中的搜索关键字高亮的代码
2018/08/29 Javascript
Vue实现表格中对数据进行转换、处理的方法
2018/09/06 Javascript
vue 属性拦截实现双向绑定的实例代码
2018/10/24 Javascript
模块化react-router配置方法详解
2019/06/03 Javascript
浅入深出Vue之组件使用
2019/07/11 Javascript
Vue.set 全局操作简单示例
2019/09/19 Javascript
vue 指令和过滤器的基本使用(品牌管理案例)
2019/11/04 Javascript
axios解决高并发的方法:axios.all()与axios.spread()的操作
2020/11/09 Javascript
小程序组件传值和引入sass的方法(使用vant Weapp组件库)
2020/11/24 Javascript
Python性能优化的20条建议
2014/10/25 Python
Python更新数据库脚本两种方法及对比介绍
2017/07/27 Python
利用python如何处理nc数据详解
2018/05/23 Python
浅谈Series和DataFrame中的sort_index方法
2018/06/07 Python
python中有关时间日期格式转换问题
2019/12/25 Python
jupyter notebook运行命令显示[*](解决办法)
2020/05/18 Python
基于pandas向csv添加新的行和列
2020/05/25 Python
Python 解析库json及jsonpath pickle的实现
2020/08/17 Python
关于css兼容性问题及一些常见问题汇总
2016/05/03 HTML / CSS
英国名牌服装购物网站:OD’s Designer
2019/09/02 全球购物
蔬菜基地的创业计划书
2014/01/06 职场文书
分层教学实施方案
2014/03/19 职场文书
五水共治捐款倡议书
2014/05/14 职场文书
工作失职检讨书500字
2014/10/17 职场文书
2015年学雷锋活动总结
2015/02/06 职场文书
安全承诺书格式范本
2015/04/28 职场文书
2016年优秀共产党员先进事迹材料
2016/02/29 职场文书
2016简单的租房合同范本
2016/03/18 职场文书
Golang中channel的原理解读(推荐)
2021/10/16 Golang