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 shell根据ip获取主机名代码示例
Nov 25 Python
Python装饰器(decorator)定义与用法详解
Feb 09 Python
Python3使用Matplotlib 绘制精美的数学函数图形
Apr 11 Python
Python hexstring-list-str之间的转换方法
Jun 12 Python
python实现爬取百度图片的方法示例
Jul 06 Python
python 图片去噪的方法示例
Jul 09 Python
python中的列表与元组的使用
Aug 08 Python
tensorflow实现tensor中满足某一条件的数值取出组成新的tensor
Jan 04 Python
基于Numba提高python运行效率过程解析
Mar 02 Python
利用Python pandas对Excel进行合并的方法示例
Nov 04 Python
如何使用Django Admin管理后台导入CSV
Nov 06 Python
方法汇总:Python 安装第三方库常用
Apr 26 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
一个oracle+PHP的查询的例子
2006/10/09 PHP
在VS2008中编译MYSQL5.1.48的方法
2010/07/03 PHP
php 多进程编程父进程的阻塞与非阻塞实例分析
2020/02/22 PHP
PHP与Web页面的交互示例详解二
2020/08/04 PHP
对象的类型:本地对象(1)
2006/12/29 Javascript
Jquery截取中文字符串的实现代码
2010/12/22 Javascript
JQuery实现防止退格键返回的方法
2015/02/12 Javascript
javascript实现的简单的表单验证
2015/07/10 Javascript
基于javascript实现右下角浮动广告效果
2016/01/08 Javascript
AngularJS中的Promise详细介绍及实例代码
2016/12/13 Javascript
jquery代码规范让代码越来越好看
2017/02/03 Javascript
JavaScript实现星星等级评价功能
2017/03/22 Javascript
基于jquery实现二级联动效果
2017/03/30 jQuery
vue实现未登录跳转到登录页面的方法
2018/07/17 Javascript
基于jquery实现九宫格拼图小游戏
2018/11/30 jQuery
JavaScript实现无限级递归树的示例代码
2019/03/29 Javascript
微信小程序sessionid不一致问题解决
2019/08/30 Javascript
解决vue刷新页面以后丢失store的数据问题
2020/08/11 Javascript
爬山算法简介和Python实现实例
2014/04/26 Python
在Python中处理字符串之isdecimal()方法的使用
2015/05/20 Python
新手入门学习python Numpy基础操作
2020/03/02 Python
利用matplotlib为图片上添加触发事件进行交互
2020/04/23 Python
如何安装并在pycharm使用selenium的方法
2020/04/30 Python
Python使用jupyter notebook查看ipynb文件过程解析
2020/06/02 Python
利用css3画个同心圆示例代码
2017/07/03 HTML / CSS
HTML5 drag和drop具体使用详解
2021/01/18 HTML / CSS
英国知名的皮手套品牌:Dents
2016/11/13 全球购物
经典c++面试题五
2014/12/17 面试题
在Ajax应用中信息是如何在浏览器和服务器之间传递的
2016/05/31 面试题
西安夏日科技有限公司Java笔试题
2013/01/11 面试题
师范生的个人求职信范文
2014/01/04 职场文书
副处级干部考察材料
2014/05/17 职场文书
数学系毕业生求职信
2014/05/29 职场文书
高校自主招生校长推荐信
2015/03/23 职场文书
Django+Celery实现定时任务的示例
2021/06/23 Python
Python实现老照片修复之上色小技巧
2021/10/16 Python