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 相关文章推荐
在IIS服务器上以CGI方式运行Python脚本的教程
Apr 25 Python
简介Python设计模式中的代理模式与模板方法模式编程
Feb 02 Python
Pycharm 设置自定义背景颜色的图文教程
May 23 Python
Django分页查询并返回jsons数据(中文乱码解决方法)
Aug 02 Python
Python使用装饰器模拟用户登陆验证功能示例
Aug 24 Python
python random从集合中随机选择元素的方法
Jan 23 Python
python实现异常信息堆栈输出到日志文件
Dec 26 Python
python求最大公约数和最小公倍数的简单方法
Feb 13 Python
Python3爬虫mitmproxy的安装步骤
Jul 29 Python
python实现网页录音效果
Oct 26 Python
Python数据分析库pandas高级接口dt的使用详解
Dec 11 Python
python中 .npy文件的读写操作实例
Apr 14 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
四月新番又没了,《Re:从零开始的异世界生活》第二季延期至7月播出
2020/05/06 日漫
PHP+javascript模拟Matrix画面
2006/10/09 PHP
php 变量未定义等错误的解决方法
2011/01/12 PHP
采集邮箱的php代码(抓取网页中的邮箱地址)
2012/07/17 PHP
php+js实现异步图片上传实例分享
2014/06/02 PHP
PHP的Yii框架的常用日志操作总结
2015/12/08 PHP
YII CLinkPager分页类扩展增加显示共多少页
2016/01/29 PHP
JavaScript是否可实现多线程  深入理解JavaScript定时机制
2009/12/22 Javascript
JavaScript高级程序设计(第3版)学习笔记10 再访js对象
2012/10/11 Javascript
json原理分析及实例介绍
2012/11/29 Javascript
javascript 文件的同步加载与异步加载实现原理
2012/12/13 Javascript
JS自动适应的图片弹窗实例
2013/06/29 Javascript
几种延迟加载JS代码的方法加快网页的访问速度
2013/10/12 Javascript
jquery中常用的函数和属性详细解析
2014/03/07 Javascript
用JavaScript实现类似于ListBox功能示例代码
2014/03/09 Javascript
jquery append()方法与html()方法的区别及使用介绍
2014/08/01 Javascript
JS实现的文字与图片定时切换效果代码
2015/10/06 Javascript
Bootstrap每天必学之js插件
2015/11/30 Javascript
分享JS代码实现鼠标放在输入框上输入框和图片同时更换样式
2016/09/01 Javascript
Bootstrap Navbar Component实现响应式导航
2016/10/08 Javascript
BootStrap 下拉菜单点击之后不会出现下拉菜单(下拉菜单不弹出)的解决方案
2016/12/14 Javascript
JS闭包与延迟求值用法示例
2016/12/22 Javascript
JSON中key动态设置及JSON.parse和JSON.stringify()的区别
2016/12/29 Javascript
使用jQuery的ajax方法向服务器发出get和post请求的方法
2017/01/13 Javascript
angularjs中判断ng-repeat是否迭代完的实例
2018/09/12 Javascript
React Component存在的几种形式详解
2018/11/06 Javascript
JS实现盒子跟着鼠标移动及键盘方向键控制盒子移动效果示例
2019/01/29 Javascript
用webpack4开发小程序的实现方法
2019/06/04 Javascript
[39:53]完美世界DOTA2联赛PWL S2 LBZS vs Forest 第一场 11.19
2020/11/19 DOTA
Python读写配置文件的方法
2015/06/03 Python
浅谈django model postgres的json字段编码问题
2018/01/05 Python
python交换两个变量的值方法
2019/01/12 Python
如何在网站上添加谷歌定位信息
2016/04/16 HTML / CSS
表彰先进的通报
2014/01/31 职场文书
汉语专业毕业生自荐信
2014/07/06 职场文书
MySQL连表查询分组去重的实现示例
2021/07/01 MySQL