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学习笔记:字典的使用示例详解
Jun 13 Python
理解Python中的绝对路径和相对路径
Aug 30 Python
python编程嵌套函数实例代码
Feb 11 Python
python pandas读取csv后,获取列标签的方法
Nov 12 Python
Python通用循环的构造方法实例分析
Dec 19 Python
Python3.5面向对象与继承图文实例详解
Apr 24 Python
Python print不能立即打印的解决方式
Feb 19 Python
Python抓包程序mitmproxy安装和使用过程图解
Mar 02 Python
keras 权重保存和权重载入方式
May 21 Python
Python dict的常用方法示例代码
Jun 23 Python
Python字符串函数strip()原理及用法详解
Jul 23 Python
pytorch交叉熵损失函数的weight参数的使用
May 24 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实现多图片上传类实例
2014/07/26 PHP
PHP利用func_get_args和func_num_args函数实现函数重载实例
2014/11/12 PHP
thinkphp多表查询两表有重复相同字段的完美解决方法
2016/09/22 PHP
CI框架表单验证实例详解
2016/11/21 PHP
JS 用6N±1法求素数 实例教程
2009/10/20 Javascript
jquery json 实例代码
2010/12/02 Javascript
js 跳出页面的frameset框架示例介绍
2013/12/23 Javascript
JavaScript学习心得之概述
2015/01/20 Javascript
jQuery实现复选框批量选择与反选的方法
2015/06/17 Javascript
jq实现左侧显示图片右侧文字滑动切换效果
2015/08/04 Javascript
javascript封装 Cookie 应用接口
2015/08/07 Javascript
iscroll.js滚动加载实例详解
2017/07/18 Javascript
Angular2管道Pipe及自定义管道格式数据用法实例分析
2017/11/29 Javascript
jQuery 实现倒计时天,时,分,秒功能
2018/07/31 jQuery
vue.js响应式原理解析与实现
2020/06/22 Javascript
iView框架问题整理小结
2018/10/16 Javascript
iview tabs 顶部导航栏和模块切换栏的示例代码
2019/03/04 Javascript
微信小程序页面间跳转传参方式总结
2019/06/13 Javascript
js实现双人五子棋小游戏
2020/05/28 Javascript
openlayers4实现点动态扩散
2020/08/17 Javascript
[49:54]Ti4 循环赛第三日 LGD vs Titan
2014/07/12 DOTA
详解Python中的strftime()方法的使用
2015/05/22 Python
Python查找文件中包含中文的行方法
2018/12/19 Python
python消费kafka数据批量插入到es的方法
2018/12/27 Python
Python3.0中普通方法、类方法和静态方法的比较
2019/05/03 Python
Python实现的爬取豆瓣电影信息功能案例
2019/09/15 Python
Python安装whl文件过程图解
2020/02/18 Python
Rossignol金鸡美国官网:始于1907年法国百年雪具品牌
2019/03/06 全球购物
毕业生的自我鉴定该怎么写
2013/12/02 职场文书
文艺晚会主持词
2014/03/24 职场文书
初中教师业务学习材料
2014/05/12 职场文书
我爱我校演讲稿
2014/05/21 职场文书
大学同学会活动方案
2014/08/20 职场文书
怎么写工作检讨书
2014/11/16 职场文书
合作协议书格式范本
2016/03/21 职场文书
OpenCV实现常见的四种图像几何变换
2022/04/01 Python