opencv (一) 学习通过OpenCV图形界面及基础

opencv 学习通过OpenCV图形界面基础

用的函数有

cv.line(), cv.circle(),cv.rectangle(), cv.ellipse(),cv.putText()

常用参数

  • img : 想要绘制图形的图片
  • color: 图形的颜色, BGR
  • thickness:厚度
  • lineType: 线的类型, 8-connected、anti-aliased 等

绘制线段

import numpy as np
import cv2 as cv
# 创建一个黑色的图片
img = np.zeros((512,512,3), np.uint8)
# 绘制一个蓝色5px对角线
cv.line(img, (0, 0), (511, 511), (255, 0, 0), 5)

绘制矩形

cv.rectangle(img,(384, 0), (510, 128), (0,255,0), 3)

绘制圆

cv.circle(img,(447, 63), 63, (0, 0, 255), -1)

绘制椭圆

cv.ellipse(img, (256,256), (100, 50), 0, 0, 180, 255, -1)

绘制多边形

pts = np.array([[10, 5], [20, 30], [70, 20],[50, 10], np.int32])
pts = pts.reshape((-1, 1, 2))
cv.polylines(img, [pts], True, (0, 255, 255))

Adding Text to Images:

font = cv.FONT_HERSHEY_SIMPLEX
cv.putText(img,'OpenCV', (10, 500), font, 4, (255, 255, 255), 2, cv.LINE_AA)

opencv监听鼠标事件

import numpy as np
import cv2 as cvevents = [i for i in dir(cv) if 'EVENT' in i]
print(events) # 遍历所有鼠标事件drawing = False
mode = True
ix, iy, = -1, -1# 监听鼠标按、移动、抬起动作
def draw_circle(event, x, y, flags, param):global ix, iy, drawing, modeif event == cv.EVENT_LBUTTONDOWN:drawing = Trueix, iy = x, yif event == cv.EVENT_LBUTTONDBLCLK:if drawing:if mode:cv.rectangle(img, (ix, iy), (x, y), (0, 255, 0), -1)else:cv.circle(img, (x, y), 5, (0, 0, 255), -1)elif event == cv.EVENT_LBUTTONUP:drawing = Falseif mode:cv.rectangle(img, (ix, iy), (x, y), (0, 255, 0), -1)else:cv.circle(img, (x, y), 5, (0, 0, 255), -1)img = np.zeros((512, 512, 3), np.uint8)
cv.namedWindow('image')
cv.setMouseCallback('image', draw_circle)while 1:cv.imshow('image', img)k = cv.waitKey(1) & 0xFFif k == ord('m'):#监听键盘m键mode = not modeelif k == 27:#监听escbreak
cv.destroyAllWindows()

opencv 绑定视图进度条

import numpy as np
import cv2 as cvdef nothing(x):passimg = np.zeros((300, 512, 3), np.uint8)
cv.namedWindow('image')cv.createTrackbar('R', 'image', 0, 255, nothing)
cv.createTrackbar('G', 'image', 0, 255, nothing)
cv.createTrackbar('B', 'image', 0, 255, nothing)switch = '0 : 0FF \n1 : ON'
cv.createTrackbar(switch, 'image', 0, 1, nothing)while 1:cv.imshow('image', img)k = cv.waitKey(1) & 0xFFif k == 27:breakr = cv.getTrackbarPos('R', 'image')g = cv.getTrackbarPos('G', 'image')b = cv.getTrackbarPos('B', 'image')s = cv.getTrackbarPos(switch, 'image')if s == 0:img[:] = 0else:img[:] = [b, g, r]cv.destroyAllWindows()

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

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

相关文章

python精进之路 -- open函数

下面是python中builtins文件里对open函数的定义,我将英文按照我的理解翻译成中文,方便以后查看。 def open(file, moder, bufferingNone, encodingNone, errorsNone, newlineNone, closefdTrue): # known special case of open """  …

数据科学家编程能力需要多好_我们不需要这么多的数据科学家

数据科学家编程能力需要多好I have held the title of data scientist in two industries. I’ve interviewed for more than 30 additional data science positions. I’ve been the CTO of a data-centric startup. I’ve done many hours of data science consulting.我曾担…

基于xtrabackup GDIT方式不锁库作主从同步(主主同步同理,反向及可)

1.安装数据同步工具 注:xtrabackup 在数据恢复的时候比mysqldump要快很多,特别是大数据库的时候,但网络传输的内容要多,压缩需要占用时间。 yum install https://www.percona.com/downloads/XtraBackup/Percona-XtraBackup-2.4.12…

excel表格行列显示十字定位_WPS表格:Excel表格打印时,如何每页都显示标题行?...

电子表格数据很多的时候,要分很多页打印,如何每页都能显示标题行呢?以下表为例,我们在WPS2019中演示如何每页都显示前两行标题行?1.首先点亮顶部的页面布局选项卡。然后点击打印标题或表头按钮。2.在弹出的页面设置对话…

opencv(二) 图片处理

opencv 图片处理 opencv 图片像素操作 取像素点操作设置像素点取图片块分离,合并 b, g, r import numpy as np import cv2 as cvimg cv.imread(/Users/guoyinhuang/Desktop/G77.jpeg)# 获取像素值 px img[348, 120] # 0 是y, 1 是x print(px)blue img[100, 1…

【NLP】语言模型和迁移学习

10.13 Update:最近新出了一个state-of-the-art预训练模型,传送门:李入魔:【NLP】Google BERT详解​zhuanlan.zhihu.com1. 简介长期以来,词向量一直是NLP任务中的主要表征技术。随着2017年底以及2018年初的一系列技术突…

TCPIP传送协议

以下代码实现在客户端查询成绩(数据库在服务器端): 客户端: static void Main(string[] args) { string str null; while (str ! Convert.ToString(0)) { Console.WriteLine("…

sql优化技巧_使用这些查询优化技巧成为SQL向导

sql优化技巧成为SQL向导! (Become an SQL Wizard!) It turns out storing data by rows and columns is convenient in a lot of situations, so relational databases have remained a cornerstone of data management in businesses across the globe. Structured…

Day 4:集合——迭代器与List接口

Collection-迭代方法 1、toArray() 返回Object类型数据,接收也需要Object对象! Object[] toArray(); Collection c new ArrayList(); Object[] arr c.toArray(); 2、iterator() Collection的方法,返回实现Iterator接口的对象,…

oem是代工还是贴牌_代加工和贴牌加工的区别是什么

展开全部代加工就是替别人加工,贴别人的牌子。贴牌加工即商家自己不生产,而是委托其他生产企e68a8462616964757a686964616f31333365663431业生产,而品牌是自己的。拓展资料:OEM(Original Equipment Manufacture)的基本含义是定牌生…

KNN 算法--图像分类算法

KNN 算法–图像分类算法 找到最近的K个邻居,在前k个最近样本中选择最近的占比最高的类别作为预测类别。 给定测试对象,计算它与训练集中每个对象的距离。圈定距离最近的k个训练对象,作为测试对象的邻居。根据这k个紧邻对象所属的类别&#xf…

java核心技术-NIO

1、reactor(反应器)模式 使用单线程模拟多线程,提高资源利用率和程序的效率,增加系统吞吐量。下面例子比较形象的说明了什么是反应器模式: 一个老板经营一个饭店, 传统模式 - 来一个客人安排一个服务员招呼…

物种分布模型_减少物种分布建模中的空间自相关

物种分布模型Species distribution models (SDM; for review and definition see, e.g., Peterson et al., 2011) are a dominant paradigm to quantify the relationship between environmental dynamics and several manifestations of species biogeography. These statisti…

BZOJ1014: [JSOI2008]火星人prefix

BZOJ1014: [JSOI2008]火星人prefix Description 火星人最近研究了一种操作:求一个字串两个后缀的公共前缀。 比方说,有这样一个字符串:madamimadam,我们将这个字符串的各个字符予以标号: 序号: 1 2 3 4 5 6…

redis将散裂中某个值自增_这些Redis命令你都掌握了没?

本章主要内容字符串命令、列表命令和集合命令散列命令和有序集合命令发布命令与订阅命令其他命令本章将介绍一些没有在第1章和第2章出现过的Redis命令,学习这些命令有助于读者在已有示例的基础上构建更为复杂的程序,并学会如何更好地去解决自己遇到的问题…

asp.net的MessageBox

public class MessageBox{ public enum MsgButton { /// <summary> /// 只是OK按钮 /// </summary> OK 1, /// <summary> /// 提示是否确定 /// </summary> OKCancel 2 } publ…

深入理解激活函数

为什么需要非线性激活函数&#xff1f; 说起神经网络肯定会降到神经函数&#xff0c;看了很多资料&#xff0c;也许你对激活函数这个名词会感觉很困惑&#xff0c; 它为什么叫激活函数&#xff1f;它有什么作用呢&#xff1f; 看了很多书籍上的讲解说会让神经网络变成很丰富的…

如何一键部署项目、代码自动更新

为什么80%的码农都做不了架构师&#xff1f;>>> 摘要&#xff1a;my-deploy:由nodejs写的一个自动更新工具,理论支持所有语言(php、java、c#)的项目,支持所有git仓库(bitbucket、github等)。github效果如何?如果你的后端项目放在github、bitbucket等git仓库中管理…

Kettle7.1在window启动报错

实验环境&#xff1a; window10 x64 kettle7.1 pdi-ce-7.1.0.0-12.zip 错误现象&#xff1a; a java exception has occurred 问题解决&#xff1a; 运行调试工具 data-integration\SpoonDebug.bat //调试错误的&#xff0c;根据错误明确知道为何启动不了&#xff0c;Y--Y-…

opa847方波放大电路_电子管放大电路当中阴极电阻的作用和选择

胆机制作知识视频&#xff1a;6P14单端胆机用示波器方波测试输出波形详细步骤演示完整版自制胆机试听视频&#xff1a;胆机播放《猛士的士高》经典舞曲 熟悉的旋律震撼的效果首先看下面这一张300B电子管电路图&#xff1a;300B单端胆机原理图图纸里面画圆圈的电阻就是放大电路当…