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 Django(图文)
Nov 04 Python
python的即时标记项目练习笔记
Sep 18 Python
Python中创建字典的几种方法总结(推荐)
Apr 27 Python
Python编程实现从字典中提取子集的方法分析
Feb 09 Python
对python修改xml文件的节点值方法详解
Dec 24 Python
python pexpect ssh 远程登录服务器的方法
Feb 14 Python
Python多项式回归的实现方法
Mar 11 Python
numpy concatenate数组拼接方法示例介绍
May 27 Python
解决pyinstaller 打包exe文件太大,用pipenv 缩小exe的问题
Jul 13 Python
通过实例解析python subprocess模块原理及用法
Oct 10 Python
python调用有道智云API实现文件批量翻译
Oct 10 Python
详解PyTorch模型保存与加载
Apr 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
laravel实现于语言包的完美切换方法
2019/09/29 PHP
用javascript实现计算两个日期的间隔天数
2007/08/14 Javascript
Jquery实现简单的动画效果代码
2012/03/18 Javascript
window.requestAnimationFrame是什么意思,怎么用
2013/01/13 Javascript
JS+CSS制作DIV层可(最小化/拖拽/排序)功能实现代码
2013/02/25 Javascript
用jquery写的菜单从左往右滑动出现
2014/04/11 Javascript
jQuery实现移动 和 渐变特效的点击事件
2015/02/26 Javascript
JS实现在页面随时自定义背景颜色的方法
2015/02/27 Javascript
JS简单实现动画弹出层效果
2015/05/05 Javascript
JavaScript采用递归算法计算阶乘实例
2015/08/04 Javascript
JavaScript中rem布局在react中的应用
2015/12/09 Javascript
select隐藏选中值对应的id,显示其它id的简单实现方法
2016/08/25 Javascript
实例分析nodejs模块xml2js解析xml过程中遇到的坑
2017/03/18 NodeJs
vue实现一个移动端屏蔽滑动的遮罩层实例
2017/06/08 Javascript
vue基于mint-ui的城市选择3级联动的示例
2017/10/25 Javascript
echarts整合多个类似option的方法实例
2018/07/10 Javascript
如何使用CSS3+JQuery实现悬浮墙式菜单
2019/06/18 jQuery
js 数组当前行添加数据方法详解
2020/07/28 Javascript
跟老齐学Python之总结参数的传递
2014/10/10 Python
Python 中Django安装和使用教程详解
2019/07/03 Python
python实现简单图书管理系统
2019/11/22 Python
使用pygame编写Flappy bird小游戏
2020/03/14 Python
Django微信小程序后台开发教程的实现
2020/06/03 Python
MAC Cosmetics官方网站:魅可专业艺术彩妆
2019/04/10 全球购物
商务英语专业应届毕业生求职信
2013/10/28 职场文书
元旦联欢会感言
2014/03/04 职场文书
高一学年自我鉴定范文(3篇)
2014/09/26 职场文书
学习党的群众路线对照检查材料
2014/09/29 职场文书
不尊敬老师检讨书范文
2014/11/19 职场文书
2014年幼师工作总结
2014/11/22 职场文书
简爱电影观后感
2015/06/10 职场文书
2015年政治教研组工作总结
2015/07/22 职场文书
python 实现定时任务的四种方式
2021/04/01 Python
mybatis3中@SelectProvider传递参数方式
2021/08/04 Java/Android
Vue自定义铃声提示音组件的实现
2022/01/22 Vue.js
Python+Selenium自动化环境搭建与操作基础详解
2022/03/13 Python