#基本功能:

#可以通过鼠标进行基本图形的绘制

#1.可以画线:当用户按下L键时,即选择了画线,此时滑动鼠标即可画线

#2.可以画矩形:当用户按下r键,即可选择画矩形,此时滑动鼠标即可画矩形

#3.可以画圆:当用户按下c键,即可选择画圆。此时滑动鼠标即可画圆

# curshape: 0-drawline 1-drawrectangle 2-drawcircle

#基本功能:
#可以通过鼠标进行基本图形的绘制
#1.可以画线:当用户按下L键时,即选择了画线,此时滑动鼠标即可画线
#2.可以画矩形:当用户按下r键,即可选择画矩形,此时滑动鼠标即可画矩形
#3.可以画圆:当用户按下c键,即可选择画圆。此时滑动鼠标即可画圆# curshape: 0-drawline  1-drawrectangle  2-drawcirclefrom inspect import stack
import cv2
import numpy as np curshape = 0 #全局变量,当前图形
startpos = (0,0) #鼠标点#显示窗口和背景
img = np.zeros((480,640,3),np.uint8)  #设置一个全黑的窗口#鼠标回调函数
#当点击鼠标按下时,应该获取到起始点,当抬起鼠标按键时,应获取到鼠标终止点,在起始点和终止点之间画一条线
def mouse_callback(event,x,y,flags,userdata):  #print(event,x,y,flags, userdata)if (event & cv2.EVENT_LBUTTONDOWN == cv2.EVENT_LBUTTONDOWN):global curshape, startpos  #全局变量的声明startpos = (x,y)  #每次按下鼠标左键都会获得一个值elif (event & cv2.EVENT_LBUTTONUP == cv2.EVENT_LBUTTONUP):if curshape ==0: #drawlinecv2.line(img,startpos,(x,y),(0,0,255))elif curshape ==1: #drawrectanglecv2.rectangle(img,startpos,(x,y),(0,0,255))elif curshape ==2: #drawcirclea = (x- startpos[0])b = (y- startpos[1])r= int((a**2+b**2)**0.5)  #计算圆的半径cv2.circle(img,startpos,r,(0,0,255))else:print('error:no shape')#创建窗口
cv2.namedWindow('drawshape',cv2.WINDOW_NORMAL)
#设置鼠标回调
cv2.setMouseCallback('drawshape',mouse_callback,"123")while True:cv2.imshow('drawshape',img)key = cv2.waitKey(1) & 0xFFif key  == ord('q'): #退出breakelif key == ord('l'): #linecurshape = 0elif key == ord('r'): #rectanglecurshape = 1elif key == ord('c'): #circlecurshape = 2cv2.destroyAllWindows()

运行结果:

Opencv基本图形绘制小结

画线、矩形、圆

画椭圆、多边形、多边形填充

画文字(中文有问题)

后期需学习:基本图像运算与处理、形态学、轮廓查找

12.Opencv大作业——实现鼠标绘制基本图形相关推荐

  1. C语言开发东北大学21级大作业—活力长者社区(图形界面)(附源码)

    注:受老师许可,本程序内容与活力长者社区稍有不同.但所涉及到的功能.知识点与结构大致相似. 本程序名为 " 陆零玖酒店管理系统 " . 任何疑问欢迎留言.此源码仅供学习,请不要过度 ...

  2. 第一次OpenCV小作业-使用鼠标左键画圆画矩形

    2020年9月28日 OpenCV中GUI的特性作业: 在白色(255, 255, 255)的背景中,利用滑动条选择颜色(RGB!),用鼠标左键画圆,右键画矩形. 分析: 要在白色背景中,利用滑动条选 ...

  3. python绘制小猪佩奇程序设计大作业_代码绘制一只小猪佩奇---python篇

    今天教大家用python的pillow包来绘制小猪佩奇,python的安装就不用多说了,直接上代码吧 0.首先当然是安装pillow包啦. 关于pillow库的安装有几种方式 最常使用的是pip安装 ...

  4. HTML5期末大作业:在线电影网站设计——电影速递网(12页面)含登录注册HTML+CSS+JavaScript

    HTML5期末大作业:在线电影网站设计--电影速递网(12页面)含登录注册HTML+CSS+JavaScript 临近期末, 你还在为HTML网页设计结课作业,老师的作业要求感到头大?HTML网页作业 ...

  5. HTML5期末大作业:轮滑运动体育类人物介绍主题网站设计(12页) HTML+CSS+JavaScript 学生DW网页设计作业成品 web课程设计网页规划与设计

    HTML5期末大作业:轮滑运动体育类人物介绍主题网站设计(12页) HTML+CSS+JavaScript 学生DW网页设计作业成品 web课程设计网页规划与设计 web学生网页设计作业源码 常见网页 ...

  6. HTML5期末大作业:茶叶主题网页设计——精美自适应绿色茶叶公司网页设计(12页) HTML+CSS+JavaScript

    HTML5期末大作业:茶叶主题网页设计--精美自适应绿色茶叶公司网页设计(12页) HTML+CSS+JavaScript 期末作业HTML代码 学生网页课程设计期末作业下载 web网页设计制作成品 ...

  7. HTML5期末大作业:美食网页制作——餐饮料里(12页) HTML+CSS+JavaScript 大学生简单个人静态HTML网页设计作品 DIV布局个人介绍网页模板代码 DW学生个人网站制作成品下载

    HTML5期末大作业:美食网页制作--餐饮料里(12页) HTML+CSS+JavaScript 学生DW网页设计作业成品 web课程设计网页规划与设计 计算机毕设网页设计源码 常见网页设计作业题材有 ...

  8. 计算机应用基础考试试题及答案 在word中,用户建立的文件默认,天津大学《计算机应用基础》2016年12月考试期末大作业考核试题...

    请同学及时保存作业,如您在20分钟内不作操作,系统将自动退出. <计算机应用基础>2016年12月考试期末大作业考核试题 试卷总分:100 测试时间:-- 单选题 一.单选题(共50 道试 ...

  9. Linux大作业任务书,《Linux系统管理》期末大作业任务书(2014.12)(1).doc

    软件学院大作业任务书 课程名称: Linux系统管理 题 目: Linux系统管理期末大作业 专 业: 班 级: 学 号: 学生姓名: 完成人数: 1人 起讫日期: 任课教师: 李荣鑫 职称: 部分管 ...

最新文章

  1. Zabbix poller processes more than 75% busy
  2. with dlz mysql 条件_Flask Bind-DLZ + Mysql DNS管理平台
  3. ajax post 请求415\ 400 错误
  4. ionic最新安装教程
  5. Python-在线文本情感分析实验
  6. 用Golang写一个搜索引擎(0x07)--- 正排索引
  7. Matplotlib--legend函数
  8. PreferenceScreen1
  9. 概率论与数理统计期末复习(仅供参考)
  10. EAS 后台事务定时执行设置
  11. cdr怎么抠图轮廓线条_cdr怎么快速抠图呢 需要技巧
  12. java 闰年闰月_什么是闰年,闰年和闰月的区别
  13. windows server 远程登录后总是出现屏幕键盘,烦死人了
  14. 开放正成为华为下一阶段的战略竞争力
  15. 关于iOS获取音乐库的音乐信息 (获取本地音乐文件)
  16. [Unity] 状态机事件流程框架 (二) 设计游戏状态的保存框架,存档功能 ScriptableObject、EasySave
  17. 满减优惠用多了,想过怎么运作的吗?
  18. python获取地图上经纬度_Python获取各大地图平台经纬度数据,哪家的数据最准确?...
  19. tesseract-ocr 识别图片中的数字
  20. 当代著名书法家潘兴东书法欣赏(十八)

热门文章

  1. Spark Sql 聚合
  2. 使用Karabiner为Mac内置键盘、HHKB进行映射
  3. 数据分析师的发展前景
  4. cifar 10 最高正确率
  5. 《ClickHouse企业级应用:入门、进阶与实战》1 全面了解ClickHouse
  6. iPhone装Android版,在iPhone里装了真·Android系统 这事情已经很神奇了
  7. 压缩软件bandizip下载
  8. CISSP-D2-资产安全
  9. 大文件传输软件-镭速——MAC版分享
  10. php关键词回复源码,PHP对接公众号搜索自动回复源码