当前位置: 首页 > news >正文

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.IMREAD
    GRAYSCALE:以灰度模式加载图像
    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指令基础

写在前面&#xff1a; 前置内容 - vue配置 文章目录 插值表达式v-html条件渲染v-show和v-ifv-ifv-if的扩展标签复用组件 v-show v-on /事件v-bind /&#xff1a;属性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 表示行&#xff0c;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中&#xff0c;备忘录模式&#xff08;Memento Design Pattern&#xff09;用于捕获一个对象的内部状态并在该对象之外保存这个状态。备忘录模式允许在后续需要时将对象恢复到之前保存的状态&#xff0c;而不会暴露其内部结构。 备忘录模式包含以下主要角色&#xff1a;…...

iOS--runtime

什么是Runtime runtime是由C和C、汇编实现的一套API&#xff0c;为OC语言加入了面向对象、运行时的功能运行时&#xff08;runtime&#xff09;将数据类型的确定由编译时推迟到了运行时平时编写的OC代码&#xff0c;在程序运行过程中&#xff0c;最终会转换成runtime的C语言代…...

06. 管理Docker容器数据

目录 1、前言 2、Docker实现数据管理的方式 2.1、数据卷&#xff08;Data Volumes&#xff09; 2.2、数据卷容器&#xff08;Data Volume Containers&#xff09; 3、简单示例 3.1、数据卷示例 3.2、数据卷容器示例 1、前言 在生产环境中使用 Docker&#xff0c;一方面…...

计算机视觉常用数据集介绍

1 MINIST MINIST 数据集应该算是CV里面最早流行的数据了&#xff0c;相当于CV领域的Hello World。该数据包含70000张手写数字图像&#xff0c;其中60000张用于train&#xff0c; 10000张用于test&#xff0c; 并且都有相应的label。图像的尺寸比较小&#xff0c; 为28x28。 数…...

Arcgis画等高线

目录 数据准备绘制等高线3D等高线今天我们将学习如何在ArcGIS中绘制等高线地图。等高线地图是地理信息系统中常见的数据表现形式,它通过等高线将地形起伏展现得一目了然,不仅美观,还能提供重要的地形信息。 数据准备 在开始之前,确保已经准备好了高程数据,它通常以栅格数…...

abp vnext4.3版本托管到iis同时支持http和https协议

在项目上本来一直使用的是http协议,后来因为安全和一些其他原因需要上https协议&#xff0c;如果发布项目之后想同时兼容http和https协议需要更改一下配置信息&#xff0c;下面一起看一下&#xff1a; 1.安装服务器证书 首先你需要先申请一张服务器证书&#xff0c;申请后将证…...

2023年全网电视盒子无线ADB修改桌面(无需ROOT)

前言 1.主要是为了解决电视盒子等安卓设备无法卸载或者停用原始桌面导致无法选用第三方桌面。 解决方案 1.首先自行下载我提供的网盘APK 2.点击打开中国移动云盘 3.不管你是通过U盘还是局域网共享能够让你的电视安装第三方应用&#xff0c;毕竟每个品牌的安装方法不尽相同…...

什么是Java中的Maven?

Java中的Maven&#xff0c;可以简单理解为“一个神奇的工具”&#xff0c;它可以自动帮你管理Java项目的依赖关系&#xff0c;让你不再为手动下载、配置各种库而烦恼。想象一下&#xff0c;你正在写一个Java项目&#xff0c;突然发现需要引入一个名为"第三方库"的模块…...

【C++】总结7

文章目录 函数指针C中类成员的访问权限和继承权限问题定义和声明的区别C中类的静态成员与普通成员的区别是什么&#xff1f;虚函数为什么不能重载为内联函数&#xff1f;对ifdef endif的理解如何在不使用额外空间的情况下&#xff0c;交换两个数&#xff1f; 函数指针 什么是函…...

【前端知识】React 基础巩固(四十二)——React Hooks的介绍

React 基础巩固(四十二)——React Hooks的介绍 一、为什么需要Hook? Hook 是 React 16.8 的新增特性&#xff0c;它可以让我们在不编写class的情况下使用state以及其他的React特性&#xff08;比如生命周期&#xff09;。 class组件 VS 函数式组件&#xff1a; class的优势…...

adb命令丨adb push命令大全_adb操控手机和指令

【ADB命令】adb push命令总结 adb push命令大全操控手机和指令 运行在 Android 设备上的adb后台进程 执行 adb shell ps | grep adbd &#xff0c;可以找到该后台进程&#xff0c;windows 请使用 findstr 替代 grep [xuxu:~]$ adb shell ps | grep adbd root 23227 1 6672 8…...

【腾讯云 Cloud Studio 实战训练营】沉浸式体验编写一个博客系统

文章目录 前言项目中技术栈新建工作空间登录(注册)Cloud Studio 账号&#xff1a;进入 Cloud Studio 控制台&#xff1a;配置工作空间参数&#xff1a;确认并创建工作空间&#xff1a;项目搭建 配置nuxt 脚手架运行项目报错信息解决错误脚手架运行预览问题 开启博客代码配置lay…...

手机视频聊天分享

在人际互动的手机APP中&#xff0c;增加语音视频聊天功能是一个常见的需求。而现在&#xff0c;更进一步&#xff0c;在某些场景下&#xff0c;我们需要能将自己的手机屏幕分享给他人&#xff0c;或者是观看他人的手机屏幕。那么&#xff0c;这些常见的功能是如何实现的了&…...

神经网络小记-优化器

优化器是深度学习中用于优化神经网络模型的一类算法&#xff0c;其主要作用是根据模型的损失函数来调整模型的参数&#xff0c;使得模型能够更好地拟合训练数据&#xff0c;提高模型的性能和泛化能力。优化器在训练过程中通过不断更新模型的参数&#xff0c;使模型逐步接近最优…...

【BUUCTF】MISC 弱口令实战:从安装Python库到LSB隐写破解全流程

1. 弱口令与LSB隐写技术入门 第一次接触CTF比赛时&#xff0c;我被各种隐写术搞得晕头转向。特别是遇到需要破解弱口令和LSB隐写的题目时&#xff0c;简直就像在黑暗中摸索。后来经过多次实战&#xff0c;终于总结出一套行之有效的方法。今天我就来分享从安装Python库到最终破解…...

忍者像素绘卷:天界画坊在操作系统课程设计中的应用:进程调度可视化

忍者像素绘卷&#xff1a;天界画坊在操作系统课程设计中的应用&#xff1a;进程调度可视化 1. 当操作系统教学遇上像素艺术 操作系统课程中的进程调度算法一直是教学难点。传统方式依靠静态图表和伪代码讲解&#xff0c;学生往往难以直观理解不同调度策略的实际运行差异。而&…...

用鲸鱼优化算法(WOA)整定PID参数:Matlab与Simulink实战

鲸鱼优化算法&#xff08;WOA&#xff09;整定 PID 参数&#xff0c;m 文件加 simulink仿真&#xff0c;仿真程序给出适应度优化曲线&#xff0c;参数优化曲线以及优化对比波形&#xff0c;适用 matlab 2021b 及以上版本在自动控制领域&#xff0c;PID控制器因其结构简单、稳定…...

Cursor 高级技巧:@符号、Chat 模式与多文件编辑

前言 经过前两天的学习&#xff0c;你已经掌握了 Cursor 的基本用法&#xff0c;能用 CmdK 做单文件修改&#xff0c;用 Tab 自动补全代码。但 Cursor 真正强大的地方&#xff0c;在于它构建了一套以 AI 为中心的上下文感知系统——让 AI 不再是"盲写"&#xff0c;而…...

终极Windows驱动管理指南:如何用DriverStore Explorer快速释放30GB磁盘空间

终极Windows驱动管理指南&#xff1a;如何用DriverStore Explorer快速释放30GB磁盘空间 【免费下载链接】DriverStoreExplorer Driver Store Explorer 项目地址: https://gitcode.com/gh_mirrors/dr/DriverStoreExplorer DriverStore Explorer&#xff08;简称RAPR&…...

CES Asia 2026打造低空经济生态圈:从整机到核心部件全链覆盖

北京&#xff0c;2026年3月31日电——低空经济产业正迈向全链协同、规模化落地的关键阶段。CES Asia 2026将于6月10—12日在北京举办&#xff0c;以全产业链覆盖精准供需对接资本赋能为核心&#xff0c;构建从整机到核心部件的完整低空经济生态圈&#xff0c;助力企业一站式打通…...

Serverless时代Java开发者必学的3种函数封装范式:POJO/Function/Consumer,第2种正在被淘汰!

第一章&#xff1a;Serverless时代Java函数计算的演进与定位Serverless 架构正深刻重塑 Java 应用的部署范式。传统 Java 应用依赖长生命周期的 JVM 进程与复杂中间件栈&#xff0c;而函数计算&#xff08;Function-as-a-Service, FaaS&#xff09;将执行单元收敛为无状态、事件…...

macOS安装OpenClaw全流程:Qwen2.5-VL-7B图文模型调试技巧

macOS安装OpenClaw全流程&#xff1a;Qwen2.5-VL-7B图文模型调试技巧 1. 为什么选择OpenClawQwen2.5-VL组合 去年冬天第一次接触OpenClaw时&#xff0c;我正被重复性的截图标注工作折磨得焦头烂额。当时尝试过几个自动化工具&#xff0c;要么功能太局限&#xff0c;要么需要把…...

Qwen3-14B镜像部署指南:单卡RTX 4090D上快速启用中文大模型推理

Qwen3-14B镜像部署指南&#xff1a;单卡RTX 4090D上快速启用中文大模型推理 1. 镜像概述与核心优势 Qwen3-14B私有部署镜像是专为RTX 4090D显卡优化的中文大模型推理解决方案。这个镜像最大的特点就是"开箱即用"——所有环境依赖、模型权重、优化组件都已预装配置好…...

让大模型乖乖听话:新手程序员必备的Prompt写作秘籍(收藏版)

本文探讨了如何通过精心设计的Prompt让大模型按照要求思考&#xff0c;提升任务执行的准确性。作者提出了一个有效的Prompt结构&#xff0c;包括角色/任务定义、核心原则、上下文处理、CoT(Chain of Thoughts)思考链、输出规范和Few-Shot示例等模块。文章还介绍了如何借助模型生…...