本文实例讲述了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图像处理之简单画板实现方法相关推荐

  1. python图像处理方法_python图像处理之反色实现方法

    本文实例讲述了python图像处理之反色实现方法.分享给大家供大家参考.具体如下: 我们先加载一个8位灰度图像 每一个像素对应的灰度值从0-255 则只需要读取每个像素的灰度值A,再将255-A写入 ...

  2. python实时监控文件大小_python实现实时监控文件的方法

    在业务稳定性要求比较高的情况下,运维为能及时发现问题,有时需要对应用程序的日志进行实时分析,当符合某个条件时就立刻报警,而不是被动等待出问题后去解决,比如要监控nginx的$request_time和 ...

  3. python加密与解密_Python字符串加密与解密的方法总结

    python对字符串做加密解密处理,大致有三种方法:base64,win32com.client和自定义加密解密算法,最安全可靠的方式,建议是自写加密解密算法. 1,使用base64: 代码示例: # ...

  4. python中二维数组_Python二维数组实际应用方法浅析

    Python数组的应用中在实际编程中是一个非常重要的应用技术,作为Python编程人员来说,必须要熟练的掌握这方面的所有应用技巧.那么,接下来,我们将会通过对Python二维数组的理解来为大家解读这方 ...

  5. python中静态变量_Python中的静态变量和方法

    python中静态变量 Defining static variable and method is a common programming concept and is widely used i ...

  6. python网站开发换行_python实现换行写代码的方法

    python实现换行写代码的方法 发布时间:2020-07-02 16:34:06 来源:亿速云 阅读:257 这篇文章运用简单易懂的例子给大家介绍python实现换行写代码的方法,代码非常详细,感兴 ...

  7. python list元素合并_python list 合并连接字符串的方法

    python list 合并连接字符串的方法 更新时间:2013年03月09日 22:02:18 作者: python 列表合并字符串,我们一般会用到字符串的join方法来操作.下面通过代码的形式,详 ...

  8. python整数格式化表达式_Python字符串格式化表达式和格式化方法

    Python格式化字符串由两种方式可以选择:一种是格式化表达式(Formatting Expression),一种是格式化方法(Formatting Method).其中格式化表达式在全Python版 ...

  9. python 接收外部参数_python 接收处理外带的参数方法

    python 接收处理外带的参数方法 在执行python 代码的时候,有时候需要传递外面的参数进行处理 这个该怎么实现呢? 需要一个模块 from sys import argv 当然也可以直接只导入 ...

最新文章

  1. crackme算法分析---CRC32算法的妙用
  2. Android自定义Dialog及与Activity的交互
  3. Javascript 中 Array.push 要比 Array.concat 快 945 倍
  4. 《快乐编程大本营》java语言训练班 1课:第一个java程序:你好,范冰冰;
  5. UiPath: Studio 快捷键
  6. 移动app设计公司流程—APP设计需求分析规范
  7. Nxlog 配置总结
  8. docker之部署一个不中毒的浏览器
  9. MS-office计算机二级选择题大全
  10. 官方水晶报表 .NET 应用程序实例下载 (Visual Basic .NET)
  11. 桌面文件不见了怎么恢复,用它不慌张!
  12. 2018杭州·云栖大会:一文直击地表最强黑科技
  13. 关于投入产出表中的一些原则和方法论
  14. 怎么关闭win7计算机一键还原系统,win7一键还原按哪个键_win7一键还原
  15. 订阅新闻联播文字标题到邮箱
  16. LM7805的特殊使用方法
  17. css3基础知识总结
  18. 伴随着我娃成长的运维平台(持续开源..)
  19. KBQA知识问答概述
  20. 360更新补丁之后把Outlook弄坏了

热门文章

  1. 支付宝php sdk如何使用,支付宝SDK怎么用啊?
  2. ARFoundation多图切换识别
  3. 热血传奇之周星弛[转载]【出处:未知】
  4. 传奇 定时任务(泡点、时间触发、任务活动等)
  5. navicat 表合并查询_navicat怎么合并表格
  6. java.sql.SQLException: Incorrect string value: '\xE6\x88\x91\xE7\x9A\x84...' for column 'groupName'
  7. 如何评价 APICloud ?
  8. apicloud 开发app 引用vue+element_ui的方法
  9. NTL密码算法开源库——模二整数上的矩阵(mat_GF2)
  10. 用matlab作椭圆方程,用matlab做椭圆拟合方程