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 相关文章推荐
轻量级的Web框架Flask 中模块化应用的实现
Sep 11 Python
python实现输入数字的连续加减方法
Jun 22 Python
Python WEB应用部署的实现方法
Jan 02 Python
python函数声明和调用定义及原理详解
Dec 02 Python
PyQt5多线程刷新界面防假死示例
Dec 13 Python
python实现名片管理器的示例代码
Dec 17 Python
pytorch 实现tensor与numpy数组转换
Dec 27 Python
PyCharm汉化安装及永久激活详细教程(靠谱)
Jan 16 Python
使用jupyter notebook直接打开.md格式的文件
Apr 10 Python
Python自动登录QQ的实现示例
Aug 28 Python
python 实现围棋游戏(纯tkinter gui)
Nov 13 Python
python 图像增强算法实现详解
Jan 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
discuz7 phpMysql操作类
2009/06/21 PHP
php面向对象全攻略 (十四) php5接口技术
2009/09/30 PHP
Yii CFileCache 获取不到值的原因分析
2017/02/08 PHP
PHP实现数组根据某个字段进行水平合并,横向合并案例分析
2019/10/08 PHP
PHPExcel实现的读取多工作表操作示例
2020/04/14 PHP
理解Javascript_11_constructor实现原理
2010/10/18 Javascript
js获取IP地址的方法小结
2014/07/01 Javascript
异步JS框架的作用以及实现方法
2015/10/29 Javascript
jQuery鼠标悬浮链接弹出跟随图片实例代码
2016/01/08 Javascript
Bootstrap入门书籍之(五)导航条、分页导航
2016/02/17 Javascript
浅析Bootstrap表格的使用
2016/06/23 Javascript
JavaScript实现翻页功能(附效果图)
2017/02/16 Javascript
微信小程序 五星评价功能的实现
2017/03/09 Javascript
Bootstrap的Carousel配合dropload.js实现移动端滑动切换图片
2017/03/10 Javascript
使用Xcache缓存器加速PHP网站的配置方法
2017/04/22 Javascript
微信小程序实现左侧滑动导航栏
2020/04/08 Javascript
[02:53]DOTA2亚洲邀请赛 NewBee战队巡礼
2015/02/03 DOTA
使用python实现拉钩网上的FizzBuzzWhizz问题示例
2014/05/05 Python
PyQt5每天必学之拖放事件
2020/08/27 Python
Python爬虫包BeautifulSoup实例(三)
2018/06/17 Python
Django框架实现逆向解析url的方法
2018/07/04 Python
python实现矩阵打印
2019/03/02 Python
PyQt5通信机制 信号与槽详解
2019/08/07 Python
django实现类似触发器的功能
2019/11/15 Python
TensorFlow tensor的拼接实例
2020/01/19 Python
python opencv实现图片缺陷检测(讲解直方图以及相关系数对比法)
2020/04/07 Python
给keras层命名,并提取中间层输出值,保存到文档的实例
2020/05/23 Python
Python环境使用OpenCV检测人脸实现教程
2020/10/19 Python
微信端html5页面调用分享接口示例
2018/03/14 HTML / CSS
酒店应聘自荐信
2013/11/09 职场文书
《夜晚的实验》教学反思
2014/02/19 职场文书
信息工作经验交流材料
2014/05/28 职场文书
2014幼儿园班主任工作总结
2014/12/04 职场文书
电力培训学习心得体会
2016/01/11 职场文书
PySwarms(Python粒子群优化工具包)的使用:GlobalBestPSO例子解析
2021/04/05 Python
JS前端可扩展的低代码UI框架Sunmao使用详解
2022/07/23 Javascript