【OpenCV学习笔记07】- 【彩蛋】实现轨迹条控制画笔颜色和笔刷半径,并可以正常绘画

彩蛋

实现轨迹条控制画笔颜色和笔刷半径,并可以正常绘画。

直接上彩蛋代码

示例代码:

# 彩蛋,创建一个可以调节颜色和笔刷半径的轨迹栏,并且可以通过鼠标进行绘画
import numpy as np
import cv2 as cv# 定义全局变量
# 如果 True 是鼠标按下
drawing = True
# 如果 True,画矩形,按下‘m’切换到曲线
mode = True
# 笔刷半径,默认是1
radius_of_brush = 1
# 笔刷颜色
b, g, r = 0, 0, 0def nothing(x):pass# 鼠标回调函数
def draw_circle(event, x, y, flags, param):global ix, iy, drawing, mode, radius_of_brush, b, g, rif event == cv.EVENT_LBUTTONDOWN:drawing = Trueelif event == cv.EVENT_MOUSEMOVE:if drawing:cv.circle(img, (x, y), radius_of_brush, (b, g, r), -1)elif event == cv.EVENT_LBUTTONUP:drawing = False# 创建一个黑色图像,一个窗口
img = np.zeros((300, 512, 3), np.uint8)
cv.namedWindow('image')
# 绑定鼠标回调函数
cv.setMouseCallback('image', draw_circle)# 创建一个改变颜色的轨迹栏
cv.createTrackbar('R', 'image', 0, 255, nothing)
cv.createTrackbar('G', 'image', 0, 255, nothing)
cv.createTrackbar('B', 'image', 0, 255, nothing)
# 创建一个用来调整笔刷半径的轨迹栏
switch2 = 'radius_of_brush'
cv.createTrackbar(switch2, 'image', 1, 50, nothing)
while 1:cv.imshow('image', img)k = cv.waitKey(1) & 0xFFif k == 27:break# get current positions of four trackbarsr = cv.getTrackbarPos('R', 'image')g = cv.getTrackbarPos('G', 'image')b = cv.getTrackbarPos('B', 'image')radius_of_brush = cv.getTrackbarPos(switch2, 'image')cv.destroyAllWindows()

效果图:
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/338250.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

DRF-源码解析-1.2-CBV流程(视图函数执行流程)

在DRF中,所有drf的操作都是在路由匹配完成后,即视图函数执行前和执行后做文章的。 一、代码准备 演示的视图: class TestAPIView(APIView):def get(self,request)return Respponse({code:200,msg:测试通过}) 演示的路由: path…

Java-布隆过滤器的实现

文章目录 前言一、概述二、误差率三、hash 函数的选择四、手写布隆过滤器五、guava 中的布隆过滤器 前言 如果想要判断一个元素是不是在一个集合里,一般想到的是将所有元素保存起来,然后通过比较确定。链表,树等等数据结构都是这种思路&…

JMeter+Grafana+Influxdb搭建可视化性能测试监控平台

【背景说明】 使用jmeter进行性能测试时,工具自带的查看结果方式往往不够直观和明了,所以我们需要搭建一个可视化监控平台来完成结果监控,这里我们采用三种JMeterGrafanaInfluxdb的方法来完成平台搭建 【实现原理】 通过influxdb数据库存储…

官网翻译:LangChain 0.1版本发布,功能介绍

今天,我们非常激动地宣布,LangChain 0.1.0 版本正式发布了,这是我们推出的首个稳定版本。这个版本能够兼容以前的版本,提供了 Python 和 JavaScript 两种编程语言的支持,并通过改进功能和文档,使得我们的产…

kaggle如何将自己的结果存储到本地

1.在运行完kaggle的notebook之后点击saveversion,在右上角 如何不保存的话,结果数据会丢失 然后完成后,返回到主页,找到刚才你的那个歌notebook 点开,再点开output,就可以看到自己的notebook运行后的结果了…

华为数通HCIA题库(750题)

完整题库在这里:华为数通HCIA-RS题库注释版-加水印.pdf资源-CSDN文库 此处只节选几题。 1.网络管理员在网络中捕获到了一个数据帧,其目的MAC地址是01-00-5E-AO-B1-C3。关于该MAC地址的说法正确的是( )。 A.它是一个单播MAC地址 B.它是一个广播…

QT上位机开发(键盘绘图控制)

【 声明:版权所有,欢迎转载,请勿用于商业用途。 联系信箱:feixiaoxing 163.com】 绘图是qt很基础的一个功能。通常,我们进行qt绘图的时候,一般会先创建一个qt view,这个相当于视图。接着创建一个…

【Qt之Quick模块】8. Quick基础、布局管理、布局管理器

1. 前言 Qt Quick编程,提供了多种布局方式。 如,静态布局,可以使用组件的x、y属性进行设置,或者进行绑定。 还可以使用锚anchors进行布局。 此外,还可以使用定位器以及定位管理器为多组件进行布局。 但使用布局管理器…

AI墨墨交流群正式成立:探索科技前沿,共建智能未来

在这个充满变革的时代,AI技术正如涌泉般迸发,带来无限可能。我们深感,唯有汇聚智慧,方能更好地驾驭这股前沿科技的潮流。因此,我们自豪地宣布:AI墨墨交流群正式成立了!这不仅是一个交流群&#…

【Unity】Timer计时器属性及使用

可以代替协程完成延时操作 可以不用Update进行计时 GitHub开源计时插件 网址:https://github.com/akbiggs/UnityTimer/tree/master 导入:URL:https://github.com/akbiggs/UnityTimer.git 基本功能: 创建计时器: Time…

无法访问Bing网站 - 解决方案

问题 Bing官方网址:https://www.bing.com/ 电脑无法访问Bing网站,但手机等移动设备可以访问Bing网站,此时可尝试以下方案。 以下方案适用于各种系统,如Win/Linux系统。 解决方案 方案1 修改Bing网址为:https://www4…

Windows VSCode 使用Python

一、vscode中安装python 二、下载python.exe(即vscode中需要的python解释器) 下载地址:https://www.python.org/downloads/ 三、安装第三方代码规范工具 参考网址:https://www.python.org/downloads/ 工具介绍 flake8 &#xf…