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简单猜数游戏实例
Jul 09 Python
使用Python3制作TCP端口扫描器
Apr 17 Python
Python序列化基础知识(json/pickle)
Oct 19 Python
python3+PyQt5实现自定义流体混合窗口部件
Apr 24 Python
使用python3+xlrd解析Excel的实例
May 04 Python
解决安装tensorflow遇到无法卸载numpy 1.8.0rc1的问题
Jun 13 Python
Python 新建文件夹与复制文件夹内所有内容的方法
Oct 27 Python
python时间序列按频率生成日期的方法
May 14 Python
Django 过滤器汇总及自定义过滤器使用详解
Jul 19 Python
Django框架创建mysql连接与使用示例
Jul 29 Python
Django发送邮件功能实例详解
Sep 02 Python
Python requests HTTP验证登录实现流程
Nov 05 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实现限制IP访问及提交次数的方法详解
2017/07/17 PHP
js切换光标示例代码
2013/10/10 Javascript
判断字符串的长度(优化版)中文占两个字符
2014/10/30 Javascript
jquery中ajax使用error调试错误的方法
2015/02/08 Javascript
javascript实现给定半径求出圆的面积
2015/06/26 Javascript
HTML5实现留言和回复页面样式
2015/07/22 Javascript
jQuery实现动态表单验证时文本框抖动效果完整实例
2015/08/21 Javascript
js计算时间差代码【包括计算,天,时,分,秒】
2016/04/26 Javascript
angular2中router路由跳转navigate的使用与刷新页面问题详解
2017/05/07 Javascript
用vue-cli开发vue时的代理设置方法
2018/09/20 Javascript
Vue.js实现可排序的表格组件功能示例
2019/02/19 Javascript
微信端调取相册和摄像头功能,实现图片上传,并上传到服务器
2019/05/16 Javascript
关于vue利用postcss-pxtorem进行移动端适配的问题
2019/11/20 Javascript
JS代码优化的8点建议
2020/02/04 Javascript
html-webpack-plugin修改页面的title的方法
2020/06/18 Javascript
[50:44]DOTA2-DPC中国联赛 正赛 SAG vs Dragon BO3 第二场 2月22日
2021/03/11 DOTA
python实现问号表达式(?)的方法
2013/11/27 Python
python字符串对其居中显示的方法
2015/07/11 Python
JSONLINT:python的json数据验证库实例解析
2017/11/28 Python
如何实现删除numpy.array中的行或列
2018/05/08 Python
对python多线程SSH登录并发脚本详解
2019/02/14 Python
Python+OpenCV 实现图片无损旋转90°且无黑边
2019/12/12 Python
详解KMP算法以及python如何实现
2020/09/18 Python
学校司机岗位职责
2013/11/14 职场文书
关于幼儿的自我评价
2013/12/18 职场文书
学校岗位设置方案
2014/01/16 职场文书
学生打架检讨书1000字
2014/01/16 职场文书
留学自荐信写作方法
2014/01/27 职场文书
家长学校工作方案
2014/05/07 职场文书
事业单位鉴定材料
2014/05/25 职场文书
内勤岗位职责
2015/02/10 职场文书
公司财务经理岗位职责
2015/04/08 职场文书
证婚人致辞精选
2015/07/28 职场文书
生产实习心得体会范文
2016/01/22 职场文书
python实现简单的聊天小程序
2021/07/07 Python
Innodb存储引擎中的后台线程详解
2022/04/03 MySQL