python 实现简单画板_Python图像处理之简单画板实现方法
本文实例讲述了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图像处理方法_python图像处理之反色实现方法
本文实例讲述了python图像处理之反色实现方法.分享给大家供大家参考.具体如下: 我们先加载一个8位灰度图像 每一个像素对应的灰度值从0-255 则只需要读取每个像素的灰度值A,再将255-A写入 ...
- python实时监控文件大小_python实现实时监控文件的方法
在业务稳定性要求比较高的情况下,运维为能及时发现问题,有时需要对应用程序的日志进行实时分析,当符合某个条件时就立刻报警,而不是被动等待出问题后去解决,比如要监控nginx的$request_time和 ...
- python加密与解密_Python字符串加密与解密的方法总结
python对字符串做加密解密处理,大致有三种方法:base64,win32com.client和自定义加密解密算法,最安全可靠的方式,建议是自写加密解密算法. 1,使用base64: 代码示例: # ...
- python中二维数组_Python二维数组实际应用方法浅析
Python数组的应用中在实际编程中是一个非常重要的应用技术,作为Python编程人员来说,必须要熟练的掌握这方面的所有应用技巧.那么,接下来,我们将会通过对Python二维数组的理解来为大家解读这方 ...
- python中静态变量_Python中的静态变量和方法
python中静态变量 Defining static variable and method is a common programming concept and is widely used i ...
- python网站开发换行_python实现换行写代码的方法
python实现换行写代码的方法 发布时间:2020-07-02 16:34:06 来源:亿速云 阅读:257 这篇文章运用简单易懂的例子给大家介绍python实现换行写代码的方法,代码非常详细,感兴 ...
- python list元素合并_python list 合并连接字符串的方法
python list 合并连接字符串的方法 更新时间:2013年03月09日 22:02:18 作者: python 列表合并字符串,我们一般会用到字符串的join方法来操作.下面通过代码的形式,详 ...
- python整数格式化表达式_Python字符串格式化表达式和格式化方法
Python格式化字符串由两种方式可以选择:一种是格式化表达式(Formatting Expression),一种是格式化方法(Formatting Method).其中格式化表达式在全Python版 ...
- python 接收外部参数_python 接收处理外带的参数方法
python 接收处理外带的参数方法 在执行python 代码的时候,有时候需要传递外面的参数进行处理 这个该怎么实现呢? 需要一个模块 from sys import argv 当然也可以直接只导入 ...
最新文章
- crackme算法分析---CRC32算法的妙用
- Android自定义Dialog及与Activity的交互
- Javascript 中 Array.push 要比 Array.concat 快 945 倍
- 《快乐编程大本营》java语言训练班 1课:第一个java程序:你好,范冰冰;
- UiPath: Studio 快捷键
- 移动app设计公司流程—APP设计需求分析规范
- Nxlog 配置总结
- docker之部署一个不中毒的浏览器
- MS-office计算机二级选择题大全
- 官方水晶报表 .NET 应用程序实例下载 (Visual Basic .NET)
- 桌面文件不见了怎么恢复,用它不慌张!
- 2018杭州·云栖大会:一文直击地表最强黑科技
- 关于投入产出表中的一些原则和方法论
- 怎么关闭win7计算机一键还原系统,win7一键还原按哪个键_win7一键还原
- 订阅新闻联播文字标题到邮箱
- LM7805的特殊使用方法
- css3基础知识总结
- 伴随着我娃成长的运维平台(持续开源..)
- KBQA知识问答概述
- 360更新补丁之后把Outlook弄坏了
热门文章
- 支付宝php sdk如何使用,支付宝SDK怎么用啊?
- ARFoundation多图切换识别
- 热血传奇之周星弛[转载]【出处:未知】
- 传奇 定时任务(泡点、时间触发、任务活动等)
- navicat 表合并查询_navicat怎么合并表格
- java.sql.SQLException: Incorrect string value: '\xE6\x88\x91\xE7\x9A\x84...' for column 'groupName'
- 如何评价 APICloud ?
- apicloud 开发app 引用vue+element_ui的方法
- NTL密码算法开源库——模二整数上的矩阵(mat_GF2)
- 用matlab作椭圆方程,用matlab做椭圆拟合方程