OpenCV-Python常用函数汇总
OpenCV Python
- OpenCV简述
- 显示窗口
- waitKey():等待按键输入
- namedWindow():创建窗口
- destroyWindow() :注销指定窗口
- destroyAllWindows() 注销全部窗口
- resizeWindow() 调整窗口尺寸
- 图像操作
- imread():读取图像
- imwrite():保存图像
- imshow():显示图片
- 视频操作
- VideoCapture():视频捕获
- VideoWriter():视频写入
- VideoWriter_fourcc():视频格式
- 图形绘图
- 事件处理
OpenCV简述
显示窗口
waitKey():等待按键输入
waitKey(delay=…)
- 功能:等待键盘按键输入。
- delay:等待时间,单位毫秒。0或不填写阻塞等待。
- 返回:键盘按下的键值。
- 注意:64位系统需要增加&0xFF,cv2.waitKey(0)&0xFF
namedWindow():创建窗口
namedWindow(winname, flags: int = …)
- 功能:创建窗口
- winname:窗口名称
- flags:
cv2.WINDOW_AUTOSIZE:默认设置
cv2.WINDOW_NORMAL:可以调整窗口大小
cv2.WINDOW_FULLSCREEN:全屏
cv2.WINDOW_KEEPRATIO:保持纵横比例
destroyWindow() :注销指定窗口
destroyWindow(winname)
- 功能:注销指定窗口。
- winname:要注销的窗口名称。
destroyAllWindows() 注销全部窗口
destroyAllWindows()
- 功能:注销全部窗口
resizeWindow() 调整窗口尺寸
resizeWindow(winname, width, height)
- 功能:调整窗口大小
- winname:窗口名称
- width:调整窗口目标宽度
- height:调整窗口目标高度
# 示例代码
cv2.namedWindow('image',cv2.WINDOW_NORMAL)
cv2.imshow('image',img)
cv2.waitKey(0)
cv2.destroyAllWindows()
图像操作
imread():读取图像
imread(filename: str, flags: int = …)
- 功能:读取图像数据
- filename:图像文件名称(包含路径)
- flags:
cv.IMREADCOLOR:以彩色模式加载图像,任何图像的透明度都将被忽略。这是默认参数。
cv.IMREADGRAYSCALE:以灰度模式加载图像
cv.IMREAD_UNCHANGED:包括alpha通道的加载图像模式
以上参数可以直接用(1,0,-1)替换
# 读取图像img1 = cv2.imread('./opencv/images/1.jpg', cv2.IMREAD_COLOR) # 彩色img2 = cv2.imread('./opencv/images/1.jpg', cv2.IMREAD_GRAYSCALE) # 灰度
imwrite():保存图像
imwrite(filename: str, img: Mat, params: typing.List[int] = …)
- 功能:保存图像到指定路径
- filename:保存图像的路径
- img:要保存的图像数据
# 写入文件
cv2.imwrite('./opencv/images/1-out.jpg', img1)
cv2.imwrite('./opencv/images/2-out.jpg', img2)
imshow():显示图片
imshow(winname, mat)
- 功能:显示图片
- winname:窗口名称
- mat:图片数据
cv2.imshow('img', img)
matplotlib显示彩色图片
import numpy as np
import cv2
from matplotlib import pyplot as pltif __name__ == "__main__":img = cv2.imread('./opencv/images/1.jpg', cv2.IMREAD_COLOR)img2 = cv2.cvtColor(img, cv2.COLOR_BGR2RGB) # BGR转RGBplt.imshow(img2)plt.xticks([]), plt.yticks([]) # 隐藏X,Y轴数值显示plt.show()
matplotlib显示灰度图片
import numpy as np
import cv2
from matplotlib import pyplot as pltif __name__ == "__main__":img = cv2.imread('./resource/image/1.jpg', cv2.IMREAD_GRAYSCALE)plt.imshow(img, cmap='gray', interpolation='bicubic')plt.xticks([]),plt.yticks([]) # to hide tick values on X and Y axisplt.show()
视频操作
VideoCapture():视频捕获
- 视频捕获:VideoCapture()
VideoWriter():视频写入
- 视频写入:VideoWriter()
VideoWriter_fourcc():视频格式
VideoWriter_fourcc(c1, c2, c3, c4)
图形绘图
- 画线:line()
- 矩形:rectangle()
- 画圆:circle()
- 椭圆:ellipse()
- 多边形:polylines()
- 添加文字:putText()
line(img: Mat, pt1, pt2, color, thickness=…, lineType=…, shift=…)
rectangle(img: Mat, pt1, pt2, color, thickness=…, lineType=…, shift=…)
circle(img: Mat, center, radius, color, thickness=…, lineType=…, shift=…)
ellipse(img: Mat, center, axes, angle, startAngle, endAngle, color, thickness=…, lineType=…, shift=…)
polylines(img: Mat, pts, isClosed, color, thickness=…, lineType=…, shift=…)
putText(img: Mat, text, org, fontFace, fontScale, color, thickness=…, lineType=…, bottomLeftOrigin=…)
事件处理
- setMouseCallback()
相关文章:
OpenCV-Python常用函数汇总
OpenCV Python OpenCV简述显示窗口waitKey():等待按键输入namedWindow():创建窗口destroyWindow() :注销指定窗口destroyAllWindows() 注销全部窗口resizeWindow() 调整窗口尺寸 图像操作imread():读取图像imwrite():保…...
Vue-router多级路由
目录 直接通过案例的形式来演示多级路由的用法 文件结构 Banner.vue <template><div class"col-xs-offset-2 col-xs-8"><div class"page-header"><h2>Vue Router Demo</h2></div></div> </template><…...
前端学习--vue2--2--vue指令基础
写在前面: 前置内容 - vue配置 文章目录 插值表达式v-html条件渲染v-show和v-ifv-ifv-if的扩展标签复用组件 v-show v-on /事件v-bind /:属性v-modelv-for 循环元素v-slotv-prev-cloak vue指令只的是带有v-前缀的特殊标签属性 插值表达式 插值表达式{…...
【Python机器学习】实验03 logstic回归
文章目录 简单分类模型 - 逻辑回归1.1 准备数据1.2 定义假设函数Sigmoid 函数 1.3 定义代价函数1.4 定义梯度下降算法gradient descent(梯度下降) 1.5 绘制决策边界1.6 计算准确率1.7 试试用Sklearn来解决2.1 准备数据(试试第二个例子)2.2 假设函数与前h相同2.3 代价函数与前相…...
面试-杨辉三角python递归实现,二进制转换
杨辉三角 def yang_hui(x,y):xint(x)yint(y)assert x>y,列数不应该大于行数# x 表示行,y表示列if y1 or yx:return 1else:return yang_hui(x-1,y-1)yang_hui(x-1,y)xinput(输入第几行) yinput(输入第几列) resultyang_hui(int(x),int(y)) print(result) #inclu…...
SPEC CPU 2017 x86_64 Ubuntu 22.04 LTS LLVM 16.0.6 编译 intrate intspeed
源码编译llvm 下载源码 yeqiangyeqiang-MS-7B23:~/Downloads/src$ git clone --depth1 -b 7cbf1a2 https://github.com/llvm/llvm-project 正克隆到 llvm-project... warning: 不能发现要克隆的远程分支 7cbf1a2。 fatal: 远程分支 7cbf1a2 在上游 origin 未发现 yeqiangyeqi…...
java备忘录模式
在Java中,备忘录模式(Memento Design Pattern)用于捕获一个对象的内部状态并在该对象之外保存这个状态。备忘录模式允许在后续需要时将对象恢复到之前保存的状态,而不会暴露其内部结构。 备忘录模式包含以下主要角色:…...
iOS--runtime
什么是Runtime runtime是由C和C、汇编实现的一套API,为OC语言加入了面向对象、运行时的功能运行时(runtime)将数据类型的确定由编译时推迟到了运行时平时编写的OC代码,在程序运行过程中,最终会转换成runtime的C语言代…...
06. 管理Docker容器数据
目录 1、前言 2、Docker实现数据管理的方式 2.1、数据卷(Data Volumes) 2.2、数据卷容器(Data Volume Containers) 3、简单示例 3.1、数据卷示例 3.2、数据卷容器示例 1、前言 在生产环境中使用 Docker,一方面…...
计算机视觉常用数据集介绍
1 MINIST MINIST 数据集应该算是CV里面最早流行的数据了,相当于CV领域的Hello World。该数据包含70000张手写数字图像,其中60000张用于train, 10000张用于test, 并且都有相应的label。图像的尺寸比较小, 为28x28。 数…...
Arcgis画等高线
目录 数据准备绘制等高线3D等高线今天我们将学习如何在ArcGIS中绘制等高线地图。等高线地图是地理信息系统中常见的数据表现形式,它通过等高线将地形起伏展现得一目了然,不仅美观,还能提供重要的地形信息。 数据准备 在开始之前,确保已经准备好了高程数据,它通常以栅格数…...
abp vnext4.3版本托管到iis同时支持http和https协议
在项目上本来一直使用的是http协议,后来因为安全和一些其他原因需要上https协议,如果发布项目之后想同时兼容http和https协议需要更改一下配置信息,下面一起看一下: 1.安装服务器证书 首先你需要先申请一张服务器证书,申请后将证…...
2023年全网电视盒子无线ADB修改桌面(无需ROOT)
前言 1.主要是为了解决电视盒子等安卓设备无法卸载或者停用原始桌面导致无法选用第三方桌面。 解决方案 1.首先自行下载我提供的网盘APK 2.点击打开中国移动云盘 3.不管你是通过U盘还是局域网共享能够让你的电视安装第三方应用,毕竟每个品牌的安装方法不尽相同…...
什么是Java中的Maven?
Java中的Maven,可以简单理解为“一个神奇的工具”,它可以自动帮你管理Java项目的依赖关系,让你不再为手动下载、配置各种库而烦恼。想象一下,你正在写一个Java项目,突然发现需要引入一个名为"第三方库"的模块…...
【C++】总结7
文章目录 函数指针C中类成员的访问权限和继承权限问题定义和声明的区别C中类的静态成员与普通成员的区别是什么?虚函数为什么不能重载为内联函数?对ifdef endif的理解如何在不使用额外空间的情况下,交换两个数? 函数指针 什么是函…...
【前端知识】React 基础巩固(四十二)——React Hooks的介绍
React 基础巩固(四十二)——React Hooks的介绍 一、为什么需要Hook? Hook 是 React 16.8 的新增特性,它可以让我们在不编写class的情况下使用state以及其他的React特性(比如生命周期)。 class组件 VS 函数式组件: class的优势…...
adb命令丨adb push命令大全_adb操控手机和指令
【ADB命令】adb push命令总结 adb push命令大全操控手机和指令 运行在 Android 设备上的adb后台进程 执行 adb shell ps | grep adbd ,可以找到该后台进程,windows 请使用 findstr 替代 grep [xuxu:~]$ adb shell ps | grep adbd root 23227 1 6672 8…...
【腾讯云 Cloud Studio 实战训练营】沉浸式体验编写一个博客系统
文章目录 前言项目中技术栈新建工作空间登录(注册)Cloud Studio 账号:进入 Cloud Studio 控制台:配置工作空间参数:确认并创建工作空间:项目搭建 配置nuxt 脚手架运行项目报错信息解决错误脚手架运行预览问题 开启博客代码配置lay…...
手机视频聊天分享
在人际互动的手机APP中,增加语音视频聊天功能是一个常见的需求。而现在,更进一步,在某些场景下,我们需要能将自己的手机屏幕分享给他人,或者是观看他人的手机屏幕。那么,这些常见的功能是如何实现的了&…...
神经网络小记-优化器
优化器是深度学习中用于优化神经网络模型的一类算法,其主要作用是根据模型的损失函数来调整模型的参数,使得模型能够更好地拟合训练数据,提高模型的性能和泛化能力。优化器在训练过程中通过不断更新模型的参数,使模型逐步接近最优…...
终极指南:5步永久免费解锁Cursor AI Pro功能,告别试用限制
终极指南:5步永久免费解锁Cursor AI Pro功能,告别试用限制 【免费下载链接】cursor-free-vip [Support 0.45](Multi Language 多语言)自动注册 Cursor Ai ,自动重置机器ID , 免费升级使用Pro 功能: Youve r…...
3步解锁Mac隐藏技能:Whisky让你的苹果电脑运行Windows应用
3步解锁Mac隐藏技能:Whisky让你的苹果电脑运行Windows应用 【免费下载链接】Whisky A modern Wine wrapper for macOS built with SwiftUI 项目地址: https://gitcode.com/gh_mirrors/wh/Whisky 你是否曾经在Mac上收到一个.exe文件,却只能无奈地告…...
Bebas Neue 开源字体深度解析:几何美学的技术实现与实战应用
Bebas Neue 开源字体深度解析:几何美学的技术实现与实战应用 【免费下载链接】Bebas-Neue Bebas Neue font 项目地址: https://gitcode.com/gh_mirrors/be/Bebas-Neue Bebas Neue 作为全球最受欢迎的开源几何无衬线字体,以其极简设计、高度统一的…...
Windows 11终极优化指南:用开源神器Win11Debloat快速清理系统垃圾
Windows 11终极优化指南:用开源神器Win11Debloat快速清理系统垃圾 【免费下载链接】Win11Debloat A simple, lightweight PowerShell script that allows you to remove pre-installed apps, disable telemetry, as well as perform various other changes to declu…...
2026年第十八届“中国电机工程学会杯”全国大学生电工数学建模竞赛A题绿电直连型电氢氨园区优化运行参考仿真及论文(仿真代码+论文)
2026年第十八届“中国电机工程学会杯”全国大学生电工数学建模竞赛A题绿电直连型电氢氨园区优化运行参考仿真及论文。www.bilibili.com/video/BV1Q7Li6hE27/?vd_source6ea1beb17174384a0b3d09d6d35580f6 摘 要 本文针对绿电直连型电氢氨园区的优化运行问题,在题目…...
Failed to initialize NVML: Driver/library version mismatch:一次驱动报错
Failed to initialize NVML: Driver/library version mismatch:一次驱动报错 引子:一个看似简单的系统就卡爆了。嗯。我的系统就会卡爆了。你的系统可能还是但我觉得有可能是我的。这什么?啊?受不了我的大 U 盘了。报错 那天我在自己的 Ubuntu 工作站上准…...
第一性原理缺陷计算准备:以氢掺杂氧化镓为例的VASP实践指南
1. 项目概述:从“掺杂”到“缺陷”的计算准备在半导体材料研究领域,尤其是宽禁带半导体,对材料进行掺杂以调控其电学、光学性质是核心课题之一。氧化镓(Ga2O3)作为一种新兴的超宽禁带半导体,因其在功率电子…...
用PyTorch从零复现PoolFormer:一个用平均池化替代自注意力的视觉Transformer
用PyTorch从零构建PoolFormer:揭秘平均池化如何颠覆视觉Transformer设计 当整个AI社区都在为Transformer的自注意力机制疯狂时,MetaFormer论文却提出了一个令人震惊的发现:模型性能的关键可能不在于复杂的注意力计算,而在于被长期…...
JS逆向实战:加密库动态Hook的工程化落地方法
1. 这不是写个console.log就能搞定的事:为什么主流加密库的Hook总在关键时刻失效“JS逆向实战:一键Hook主流加密库的调试与拦截”——看到这个标题,很多刚入行的朋友第一反应是:“不就是给CryptoJS、SM2、RSA.js这些库的encrypt方…...
职业会崩塌,岗位会消失,聪明的技术人该何去何从?
凌晨两点,写字楼的灯还亮着。我盯着屏幕上第 37 次运行的测试用例,咖啡杯里沉淀着今天的第三份浓缩。突然弹出一条消息:“系统架构升级,你的岗位可能被优化”。那一刻,我忽然意识到:我精心打磨的"职业…...
