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中List.index()方法的使用教程
May 20 Python
基于python的七种经典排序算法(推荐)
Dec 08 Python
python如何实现int函数的方法示例
Feb 19 Python
使用python获取csv文本的某行或某列数据的实例
Apr 03 Python
完美解决Pycharm无法导入包的问题 Unresolved reference
May 18 Python
TensorFlow Session使用的两种方法小结
Jul 30 Python
python自动化测试之DDT数据驱动的实现代码
Jul 23 Python
python创建子类的方法分析
Nov 28 Python
python扫描线填充算法详解
Feb 19 Python
Python要如何实现列表排序的几种方法
Feb 21 Python
Keras之fit_generator与train_on_batch用法
Jun 17 Python
Python QT组件库qtwidgets的使用
Nov 02 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
从零开始学YII2框架(二)通过 Composer 安装扩展插件
2014/08/20 PHP
Javascript 类与静态类的实现(续)
2010/04/02 Javascript
js 可拖动列表实现代码
2011/12/13 Javascript
浅析Javascript使用include/require
2013/11/13 Javascript
js 操作符汇总
2014/11/08 Javascript
PHPExcel中的一些常用方法汇总
2015/01/23 Javascript
AngularJS模块学习之Anchor Scroll
2016/01/19 Javascript
jquery插件uploadify多图上传功能实现代码
2016/08/12 Javascript
如何处理JSON中的特殊字符
2016/11/30 Javascript
angularjs+bootstrap菜单的使用示例代码
2017/03/07 Javascript
微信小程序 空白页重定向解决办法
2017/06/27 Javascript
react-router4 嵌套路由的使用方法
2017/07/24 Javascript
JS实现基于Sketch.js模拟成群游动的蝌蚪运动动画效果【附demo源码下载】
2017/08/18 Javascript
使用微信小程序开发弹出框应用实例详解
2018/10/18 Javascript
jquery实现动态添加附件功能
2018/10/23 jQuery
JavaScript回调函数callback用法解析
2020/01/14 Javascript
[01:01:24]DOTA2上海特级锦标赛A组败者赛 EHOME VS CDEC第三局
2016/02/25 DOTA
Python 元类使用说明
2009/12/18 Python
python根据开头和结尾字符串获取中间字符串的方法
2015/03/26 Python
Python抽象类的新写法
2015/06/18 Python
使用 Python 实现微信公众号粉丝迁移流程
2018/01/03 Python
Python中最大递归深度值的探讨
2019/03/05 Python
python分数表示方式和写法
2019/06/26 Python
在django中使用apscheduler 执行计划任务的实现方法
2020/02/11 Python
详解如何在pyqt中通过OpenCV实现对窗口的透视变换
2020/09/20 Python
Python加载数据的5种不同方式(收藏)
2020/11/13 Python
HTML5 Canvas 绘图——使用 Canvas 绘制图形图文教程 使用html5 canvas 绘制精美的图
2015/08/31 HTML / CSS
职工运动会邀请函
2014/02/02 职场文书
经典公益广告词
2014/03/13 职场文书
2014年物业公司工作总结
2014/11/22 职场文书
校友回访母校寄语
2015/02/26 职场文书
学校工会工作总结2015
2015/05/19 职场文书
追讨欠款律师函
2015/06/24 职场文书
2016国培研修心得体会
2016/01/08 职场文书
导游词之韩国济州岛
2019/10/28 职场文书
实例讲解Python中sys.argv[]的用法
2021/06/03 Python