本文实例讲述了Python基于opencv实现的简单画板功能。分享给大家供大家参考,具体如下:

import cv2

import numpy as np

drawing = False # true if mouse is pressed

ix,iy = -1,-1

def nothing(x):

pass

# mouse callback function

def draw_circle(event,x,y,flags,param):

global ix,iy,drawing

g = param[0]

b = param[1]

r = param[2]

shape = param[3]

if event == cv2.EVENT_LBUTTONDOWN:

drawing = True

ix,iy = x,y

elif event == cv2.EVENT_MOUSEMOVE:

if drawing == True:

if shape == 0:

cv2.rectangle(img,(ix,iy),(x,y),(g,b,r),-1)

else:

cv2.circle(img,(x,y),5,(g,b,r),-1)

elif event == cv2.EVENT_LBUTTONUP:

drawing = False

if shape == 0:

cv2.rectangle(img,(ix,iy),(x,y),(g,b,r),-1)

else:

cv2.circle(img,(x,y),5,(g,b,r),-1)

# Create a black image, a window

img = np.zeros((300,512,3), np.uint8)

cv2.namedWindow('image')

# create trackbars for color change

cv2.createTrackbar('R','image',0,255,nothing)

cv2.createTrackbar('G','image',0,255,nothing)

cv2.createTrackbar('B','image',0,255,nothing)

# create switch for ON/OFF functionality

switch1 = '0 : OFF \n1 : ON'

switch2 = '0: Rectangle \n1: Line '

cv2.createTrackbar(switch1, 'image',0,1,nothing)

cv2.createTrackbar(switch2, 'image',0,1,nothing)

while(1):

cv2.imshow('image',img)

k = cv2.waitKey(1) & 0xFF

# get current positions of four trackbars

if k == 27:

break

r = cv2.getTrackbarPos('R','image')

g = cv2.getTrackbarPos('G','image')

b = cv2.getTrackbarPos('B','image')

shape = cv2.getTrackbarPos(switch2,'image')

s = cv2.getTrackbarPos(switch1,'image')

if s == 0:

img[:] = 0

else:

if k == 27:

break

cv2.setMouseCallback('image',draw_circle,(b,g,r,shape))

cv2.destroyAllWindows()

运行效果:

希望本文所述对大家Python程序设计有所帮助。

python怎么建立画板_Python基于opencv实现的简单画板功能示例相关推荐

  1. python绘制三维曲线图_Python基于matplotlib实现绘制三维图形功能示例

    本文实例讲述了Python基于matplotlib实现绘制三维图形功能.分享给大家供大家参考,具体如下: 代码一: # coding=utf-8 import numpy as np import m ...

  2. python socket模块实现udp通信_Python基于socket模块实现UDP通信功能示例

    Python基于socket模块实现UDP通信功能示例 本文实例讲述了Python基于socket模块实现UDP通信功能.分享给大家供大家参考,具体如下: 一 代码 1.接收端 import sock ...

  3. python 视频人脸替换_Python基于OpenCV实现视频的人脸检测

    本文实例为大家分享了基于OpenCV实现视频的人脸检测具体代码,供大家参考,具体内容如下 前提条件 1.摄像头 2.已安装Python和OpenCV3 代码 import cv2 import sys ...

  4. python视频人脸检测_Python基于OpenCV实现视频的人脸检测

    本文实例为大家分享了基于OpenCV实现视频的人脸检测具体代码,供大家参考,具体内容如下 前提条件 1.摄像头 2.已安装Python和OpenCV3 代码 import cv2 import sys ...

  5. python直角坐标转极坐标_Python在OpenCV里实现极坐标变换功能

    在中学里学习过直角坐标系,也叫做笛卡尔坐标系,它是正交坐标系,不过也学习过极坐标系,这种坐标系比较适合大炮发射的场合.极坐标系的定义如下: 在 平面内取一个定点O, 叫极点,引一条射线Ox,叫做极轴, ...

  6. python微信加人_Python 基于wxpy库实现微信添加好友功能(简洁)

    Python 基于wxpy库实现微信添加好友功能(简洁) 更新时间:2019年11月29日 10:21:29 作者:帅鸽水煮鱼 这篇文章主要介绍了Python 基于wxpy库实现微信添加好友功能,本文 ...

  7. python换照片底色_Python 利用OpenCV给照片换底色的示例代码

    OpenCV的全称是:Open Source Computer Vision Library.OpenCV是一个基于BSD许可(开源)发行的跨平台计算机视觉库,可以运行在Linux.Windows和M ...

  8. python jieba库分词_Python基于jieba库进行简单分词及词云功能实现方法

    本文实例讲述了Python基于jieba库进行简单分词及词云功能实现方法.分享给大家供大家参考,具体如下: 目标: 1.导入一个文本文件 2.使用jieba对文本进行分词 3.使用wordcloud包 ...

  9. python辗转相除_Python基于辗转相除法求解最大公约数的方法示例

    Python基于辗转相除法求解最大公约数的方法示例 本文实例讲述了Python基于辗转相除法求解最大公约数的方法.分享给大家供大家参考,具体如下: 之前总结过一次高德纳TAOCP中的最大公约数求解,其 ...

最新文章

  1. c语言中平均值用什么表示_学C语言有什么用?
  2. RealPlayer 15正式发布 简体中文版下载
  3. Sysinternals Suite 2012.06.28软件简介
  4. python标准词匹配_用 Python 自动化办公能做到哪些有趣或有用的事情?
  5. BZOJ 2458 最小三角形(分治)
  6. 【Splay】波动值之和(金牌导航 Splay-1)
  7. leetcode283.移动零
  8. c语言打印字符的函数参数,C语言格式化打印函数vsnprintf()的实现
  9. Asp: 解决脚本输出网页出现乱码情况
  10. wget在线扒站网站程序源码
  11. 华为云企业级Redis:助力VMALL打造先进特征平台
  12. php手势解锁,Appium-实现手势密码登陆
  13. C#.Net工作笔记013---c# lambda表达式对list数据进行条件查询_分组_排序_过滤_很好用
  14. eclipse修改java类时不自动重启
  15. 获取浏览器语言的解决方案
  16. 【LINQ】Linq to SQL -- Count/Sum/Min/Max/Avg 操作符
  17. 使用计算机用眼卫生,电脑族日常保护眼睛小常识
  18. 兼容 IE、 FireFox 的 javascript 日历控件 原创作者:寒羽枫(cityhunter172)
  19. OneDrive彻底卸载
  20. 【Linux】Linux环境基础开发工具使用 —— yum | vim | gcc g++ | gdb | make makefile | 进度条 | git

热门文章

  1. jQuery learn - 1 - 选择元素 CSS
  2. javafx官方文档学习之二Scene体系学习一
  3. 设置oracle服务自动启动
  4. Twiiter,下一个热点
  5. 云计算的优势有这6点
  6. Builder 建造者模式
  7. html表格标签模板 实现跨行和跨列
  8. effective java读书笔记5:避免创建不必要的对象
  9. R----plotly包介绍学习
  10. 未在本地计算机上注册“microsoft.ACE.oledb.12.0”提供程序