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使用any判断一个对象是否为空的方法
Nov 19 Python
Python的math模块中的常用数学函数整理
Feb 04 Python
Flask实现跨域请求的处理方法
Sep 27 Python
pycharm运行和调试不显示结果的解决方法
Nov 30 Python
python 去除二维数组/二维列表中的重复行方法
Jan 23 Python
Django基础知识 web框架的本质详解
Jul 18 Python
利用Python产生加密表和解密表的实现方法
Oct 15 Python
python二元表达式用法
Dec 04 Python
Python编程快速上手——Excel表格创建乘法表案例分析
Feb 28 Python
Keras设定GPU使用内存大小方式(Tensorflow backend)
May 22 Python
Django实现任意文件上传(最简单的方法)
Jun 03 Python
Python 实现绘制子图及子图刻度的变换等问题
May 31 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
PHP5中的this,self和parent关键字详解教程
2007/03/19 PHP
php 文件上传后缀名与文件类型对照表(几乎涵盖所有文件)
2010/05/16 PHP
PHP的异常处理类Exception的使用及说明
2012/06/13 PHP
类似框架的js代码
2006/11/09 Javascript
学习YUI.Ext 第七天--关于View&JSONView
2007/03/10 Javascript
jQuery学习笔记 操作jQuery对象 CSS处理
2012/09/19 Javascript
jQuery fadeTo方法调整图片的透明度使用介绍
2013/05/06 Javascript
JS实现字体选色板实例代码
2013/11/20 Javascript
jquery中get和post的简单实例
2014/02/04 Javascript
QQ空间顶部折页撕开效果示例代码
2014/06/15 Javascript
JS判断页面是否出现滚动条的方法
2015/07/17 Javascript
javascript实现保留两位小数的多种方法
2015/12/18 Javascript
微信小程序 wxapp内容组件 icon详细介绍
2016/10/31 Javascript
用v-html解决Vue.js渲染中html标签不被解析的问题
2016/12/14 Javascript
Angular+Bootstrap+Spring Boot实现分页功能实例代码
2017/07/21 Javascript
js实现日期显示的一些操作(实例讲解)
2017/07/27 Javascript
详解AngularJS跨页面传值(ui-router)
2017/08/23 Javascript
解决vue页面DOM操作不生效的问题
2018/03/17 Javascript
vue拖拽排序插件vuedraggable使用方法详解
2020/08/21 Javascript
localstorage实现带过期时间的缓存功能
2019/06/28 Javascript
一步一步实现Vue的响应式(对象观测)
2019/09/02 Javascript
如何在selenium中使用js实现定位
2020/08/18 Javascript
js实现Element中input组件的部分功能并封装成组件(实例代码)
2021/03/02 Javascript
[02:43]2014DOTA2国际邀请赛 官方Alliance战队纪录片
2014/07/14 DOTA
[42:06]2019国际邀请赛全明星赛 8.23
2019/09/05 DOTA
举例讲解Python面向对象编程中类的继承
2016/06/17 Python
Win10环境python3.7安装dlib模块趟过的坑
2019/08/01 Python
Python队列、进程间通信、线程案例
2019/10/25 Python
浅谈Python 函数式编程
2020/06/20 Python
django下创建多个app并设置urls方法
2020/08/02 Python
微软瑞士官方网站:Microsoft瑞士
2018/04/20 全球购物
即将毕业大学生自荐信
2014/01/24 职场文书
教师学习培训邀请函
2014/02/04 职场文书
汽车维修专业自荐书
2014/05/26 职场文书
市场营销毕业求职信
2014/08/07 职场文书
2014年财务经理工作总结
2014/12/08 职场文书