OPENCV基础(图像,视频)

2023-11-10

1、图像读取、展示、写入

  1. 使用cv.imread()函数读取图像
  2. 使用函数cv.imshow()在窗口中显示图像
  3. 使用函数cv.imwrite()保存图像
import numpy as np
import cv2 as cv
img = cv.imread('image.png',0)
cv.namedWindow("image",cv.WINDOW_NORMAL)
cv.imshow('image',img)
k = cv.waitKey(0) & 0xFF
if k == 27:         # 等待ESC退出
    cv.destroyAllWindows()
elif k == ord('s'): # 等待关键字,保存和退出
    cv.imwrite('test2.png',img)
    cv.destroyAllWindows()

其中cv.waitKey()是一个键盘绑定函数。其参数是以毫秒为单位的时间。cv.destroyAllWindows()只会破坏我们创建的所有窗口。cv.namedWindow(),则可以调整窗口大小。

2、视频读取、展示、写入

  1. cv.VideoCapture() 读取视频和摄像头
  2. cv.VideoWriter() 保存处理过后的视频或者摄像头视频

读取处理本地视频

import numpy as np
import cv2 as cv
cap = cv.VideoCapture('res.avi')

fps =int(cap.get(cv.CAP_PROP_FPS))
size = (int(cap.get(cv.CAP_PROP_FRAME_WIDTH)),int(cap.get(cv.CAP_PROP_FRAME_HEIGHT)))

# 定义编解码器并创建VideoWriter对象
fourcc = cv.VideoWriter_fourcc('X','V','I','D')
out = cv.VideoWriter('output.avi', fourcc, fps, size)
if not cap.isOpened():
    print("Cannot open camera")
    exit()
while cap.isOpened():
    ret, frame = cap.read()
    if not ret:
        print("Processing Completed ...")
        break
    gray = cv.cvtColor(frame, cv.COLOR_BGR2GRAY)
    cv.imshow('frame', gray)
    out.write(gray)
    if cv.waitKey(fps) & 0xFF == 27:
        break
# 完成工作后释放所有内容
cap.release()
out.release()
cv.destroyAllWindows()

读取海康威视网络摄像头

import numpy as np
import cv2 as cv
cap = cv.VideoCapture("rtsp://admin:摄像头密码@192.168.7.102:554/Streaming/Channels/1")

fps =int(cap.get(cv.CAP_PROP_FPS))
size = (int(cap.get(cv.CAP_PROP_FRAME_WIDTH)),int(cap.get(cv.CAP_PROP_FRAME_HEIGHT)))

# 定义编解码器并创建VideoWriter对象
fourcc = cv.VideoWriter_fourcc('X','V','I','D')
out = cv.VideoWriter('haikang.avi', fourcc, fps, size)
if not cap.isOpened():
    print("Cannot open camera")
    exit()
while cap.isOpened():
    ret, frame = cap.read()
    if not ret:
        print("Processing completed ...")
        break
    # 写翻转的框架
    cv.imshow('frame', frame)
    out.write(frame)
    if cv.waitKey(fps) & 0xFF == 27:
        break
# 完成工作后释放所有内容
cap.release()
out.release()
cv.destroyAllWindows()
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

OPENCV基础(图像,视频) 的相关文章

  • Redis学习笔记04-基础知识

    测试性能 redis benchmark Redis官方提供的性能测试工具 参数选项如下 十六个数据库 默认使用的第0个 16个数据库为 DB 0 DB 15 默认使用DB 0 可以使用select n切换到DB n dbsize可以查看当
  • Java中的assert使用

    1 assertion 断言 是jdk1 4才开始支持的新功能 主要在开发和测试时开启 为保证性能 在正式发布后通常是关闭 2 Java中assertion与C中的assertion的区别在于 1 Java中是使用assert关键字去实现其
  • Derby 的安装&配置

    Derby 的安装 配置 原文 http zetcode com db apachederbytutorial install 在接下来的页面中 我们将展示如何安装 Derby 并根据需要配置 Derby 我们从 db apache org
  • redis安装教程

    redis安装教程 redis安装 redis安装教程 1 下载redis 2 解压 3 移动 放到usr local 录下 4 进 redis 录 5 生成 6 测试 这段运 时间会较 如果出现错误 此时需要安装tcl 如下 安装完tcl
  • Vue学习33----第三方日历组件ele-calendar 的使用(结合了lodash中的_.filter,_.find,_.map)

    文档地址 https www npmjs com package ele calendar https github com xuyanming ele calendar 效果图 组件
  • 面试题记录-- 对于软件测试的理解,测试的核心,测试策略

    记录面试遇到的题 个人理解 关于测试核心 怎么做好测试等等的问题 其实总结都是为了 预防 预防 预防 预防缺陷 把缺陷扼杀在摇篮里 测试效率 接口测试 敏捷 测试 你怎么看测试 软件测试是什么 分为哪几个阶段 怎么看测试 测试 已知测试需求
  • Java虚拟机基础知识整理

    文章目录 Java虚拟机基础知识整理 一 JVM的体系结构 二 类加载器详解 三 沙箱安全机制 一 沙箱安全发展历史 二 沙箱基本组件 四 Native以及方法区和寄存器 一 Native本地方法 二 PC寄存器 三 方法区 五 栈 Sta
  • JSP(机器调度问题)使用java进行数学建模并调用cplex求解

    机器调度问题 JSP问题 描述为 在给定每个工件的加工流程 每个工件使用机器的序列及每个工件每道工序的加工时间确定的情况下 安排工件的加工顺序 使得待加工的工件在机器上进行加工的最大完工时刻最小 接着上次的JSP模型 https blog
  • golang docker client通过ssh调用远程主机的接口

    golang通过tcp方式连接调用远程主机docker的接口 可参考 https mp csdn net mp blog creation editor 126315928 本文主要是用Go通过ssh方式连接到远程主机 调用docker接口
  • 配置chrony时间同步服务

    一 chrony简介 chrony 的优势 更快的同步 从而最大程度减少了时间和频率误差 对于并非全天 24 小时运行的虚拟计算机而言非常有用 能够更好地响应时钟频率的快速变化 对于具备不稳定时钟的虚拟机或导致时钟频率发生变化的节能技术而言
  • Linux 免费学习路线大全,你想要的都在这里啦(持续更新,欢迎收藏❤️关注点赞加评论)

    为什么学 Linux 相比于 Windows Linux 免费 开源 安全 灵活 稳定 便于开发 所以更受企业青睐 甚至 90 以上 的企业应用都是用 Linux 服务器部署的 无论是前端 后端 算法 测试 运维等计算机相关岗位的同学 都建
  • Batch Normalization详解

    Batch Normalization 原理 1 Batch Normalization的提处背景 1 1 常见的帮助收敛的方法 在深度学习中 随着网络层数的加深 模型的收敛难度会越来越大 为了让模型更好的收敛 涌现出了各种各样的调参方法
  • Java8 HashMap源码解析

    HashMap底层数据结构 HashMap底层数据结构是 数组 链 如下图 当满足以下两个条件 链表会转为红黑树 1 数组长度等于或大于64 2 链表长度等于或大于8 如果数组长度小于64 链表长度等于或大于8 不会把链表转为红黑树 而是扩
  • SpringMVC中如何使用注解的方式实现文件上传呢?

    转自 SpringMVC中如何使用注解的方式实现文件上传呢 一 form表单注意事项 上传文件所处的表单 表单必须使用以下属性 enctype multipart form data method POST 二 applicationCon
  • vue-鉴权的两种方法之路由拦截

    vue中鉴权的两种方法 常用的鉴权有两种 一种是路由拦截 一种是动态路由 路由拦截 通过vue router的beforeEach方法进行每一次路由访问的拦截 判断拦截信息中是否有鉴权要求或者权限校验 以此来实现鉴权 如果权限不够 访问的路
  • 透视Matplotlib核心功能和工具包 - Seaborn工具包

    Seaborn是基于Matplotlib构建的功能强大的可视化工具 它使多变量探索性数据分析更加容易和直观 并且增加了一些新类型的图 并且其背景样式和颜色图更加令人愉悦 它具有许多内置的统计功能 使其成为统计数据分析的首选工具 它还具有非常
  • Web学习之TypeScript

    文章目录 一 TypeScript是什么 二 TypeScript配置 三 变量声明 四 解构 五 函数 六 类Class 七 模块Module 八 总结 九 学习资料 一 TypeScript是什么 TypeScript是JavaScri
  • PTA 7-38 等边三角形面积

    PTA 7 38 等边三角形面积 数学基础对于程序设计能力而言很重要 对于等边三角形面积 请选择合适的方法计算之 输入格式 测试数据有多组 处理到文件尾 每组测试输入1个实数表示等边三角形的边长 输出格式 对于每组测试 在一行上输出等边三角
  • Ubuntu 14.04 Tab补全忽略大小写

    0 前言 当目录名以大写字母开头时 通过cd命令进入该目录就不太方便 需要切换到大写输入 如果Tab补全可以忽略大小写的话 这个问题就引刃而解 1 设置方法 1 在 目录中创建 inputrc 2 打开 inputrc 添加如下设置 set
  • 面向产品分析的内容

    声明 本文是学习GB T 42859 2023 航天产品质量问题三个面向分析方法实施要求 而整理的学习笔记 分享出来希望更多人受益 如果存在侵权请及时联系我们 1 范围 本文件规定了航天产品质量问题三个面向分析方法实施的一般要求 程序和分析

随机推荐

  • Pandas库基础知识(一)

    文章目录 1 数据结构 1 Series 数据结构 1 Series对象的创建 2 Series对象的属性 3 Series对象的基本操作 2 DataFrame 数据结构 1 DataFrame对象的创建 2 DataFrame对象的属性
  • scrapy-redis分布式爬虫框架详解

    scrapy redis分布式爬虫框架详解 随着互联网技术的发展与应用的普及 网络作为信息的载体 已经成为社会大众参与社会生活的一种重要信息渠道 由于互联网是开放的 每个人都可以在网络上发表信息 内容涉及各个方面 小到心情日志 大到国家大事
  • sqllab 1-6 练习

    前言 什么是sql注入 攻击者通过构造不同的sql语句来实现对数据库的操作 两个关键 参数用户可控 参数带入数据库查询 基本流程 判断注入点 判断字段数 判断回显点 查询相关内容 判断库名 gt 判断表明 gt 判断列名 gt 判断数据 搭
  • xxl-job详细使用指南

    新建任务说明 本篇文章承接上文 xxl job快速入门指南 上一次和大家简单介绍了下 xxl job 的由来以及使用方法 本篇文章将会详细介绍一些高级使用方法及特性 上文中我们在新建一个任务的时候发现有很多的选项 现在我们来详细聊一聊他们的
  • Jquery加载本地文件出现跨域错误的解决方案

    禁止跨域是浏览器的安全限制机制 会报告上述错误 但是可以通过设置来绕过这个限制 如果经常调试前端代码 可以在本机装个web容器 常见的方式 右击chrome快捷方式 选择 属性 在 快捷方式 下的 目标 中添加 allow file acc
  • HT for Web (Hightopo) 使用心得(6)- 3D场景环境配置(天空球,雾化,辉光,景深)

    在前一篇文章 Hightopo 使用心得 5 动画的实现 中 我们将一个直升机模型放到了3D场景中 同时 还利用动画实现了让该直升机围绕山体巡逻 在这篇文章中 我们将对上一篇的场景进行一些环境上的丰富与美化 让场景更真实一些 具体涉及到的知
  • 微信小程序基础入门的知识点

    微信小程序基础入门的知识点 1 窗口配置 就是在我们app json文件就是对我们微信小程序进行全局配置 它决定我们页面文件的路径 设置多个tab 1 1 pages设置页面的路径 数组的第一个就是我们小程序初始页面 文件名不需要我们写文件
  • C语言入门之自定义结构体数据struct Student { int num; char name[20]; char sex; int age; 类型

    用户自己建立由不同类型数据组成的组合型的数据结构 它称为结构体 例如 一个学生的学号 姓名 性别 年龄 成绩 家庭地址等项 是属于同一个学生的 因此组成一个组合数据 如student 1的变量 反映它们之间的内在联系 struct Stud
  • 字节跳动,华为,阿里巴巴,小米,腾讯 2021大厂面试经历系列之初、中、高级测试工程师面试题汇总(附答案)

    前言 最近看到很多人都在找工作 而且很多人都感觉今年找工作比去年难很多 竞争力也增加不少 因此激发我整理这份资料 希望能帮到正在找或者准备找工作的童鞋们 首先我们能否获得一个面试机会 那肯定是从简历开始 简历需要做好功夫 一份好的简历才足够
  • Springboot集成Jasypt实现配置文件加密

    不容错过的成长之旅 Jasypt介绍 Jasypt是一个java库 它允许开发员以最少的努力为他 她的项目添加基本的加密功能 并且不需要对加密工作原理有深入的了解 用于单向和双向加密的高安全性 基于标准的加密技术 加密密码 文本 数字 二进
  • 解决Windows10中文用户名带来软件无法打开的影响

    众所周知 许多国外的开发软件都不支持中文的文件路径名 即使软件的路径无中文字符 可你系统用户的名称是中文 同样软件无法运行 因为大部分软件的在电脑用户上的缓冲文件都是在 C user 你的用户名称 AppData local temp 解决
  • Power BI和Tableau对比分析,到底要学哪个?

    Power BI和Tableau对比分析 到底要学哪个 一 两个工具优缺点 Power BI Tableau 二 职业需求 前程无忧 智联招聘 三 总结 学习tableau还是power bi想必是很多初学者的疑惑 可以从以下两个角度去考虑
  • 一台服务器想用150个ip,可以吗?

    不可以 一台服务器一次只支持一个ip 可以更换 但每次绑定一个 如果需要多个ip 只能多开服务器 挂店铺的 包括淘宝店铺 拼多多店铺 亚马逊店铺都想店铺不被关联 想买台服务器 可以的 一个店铺买一台服务器 有几个店铺就买几台服务器 ip的带
  • 数据结构:(代码篇:004)二叉搜索树 BST(二叉查找树)的基本操作

    1 基本概念 二叉搜索树 是二叉树是真子集 要求 根节点大于或等于左子树的节点值 小于右子树的节点值 他的中序遍历是有序的 基本操作有 查找 插入 删除 建树 查找和插入以及建树都很简单 和二叉树的差不多 删除略微复杂 2 存储结构 str
  • Apche Kafka + Spring的消息监听容器

    目录 一 消息的接收 1 1 消息监听器 二 消息监听容器 2 1 实现方法 2 1 1 KafkaMessageListenerContainer 2 1 1 1 基本概念 2 1 1 2 如何使用 KafkaMessageListene
  • SpringMVC异常处理

    1 概述 SpringMVC 框架处理异常的常用方式 使用 ExceptionHandler 注解处理异常 2 ExceptionHandler注解和用 ControllerAdvice注解 2 1 ExceptionHandler注解 使
  • VIVADO软件错误及解决办法汇总

    在VIVADO软件编写程序时会遇到很多类型的错误 写个博客记录下来防止再犯 短期可能只有几个问题 会长期保持更新 遇到问题就记录 2022 4 09 问题1 The debug port u ila 0 probe4 has 1 uncon
  • 盘点C# 8.0中好用的特性

    增加引用类型可为null 如果参数t是null 则会发出警告 public static void Test
  • CocosCreator3.8研究笔记(十八)CocosCreator UI组件(二)

    前面的文章已经介绍了Canvas 组件 UITransform 组件 Widget 组件 想了解的朋友 请查看 CocosCreator3 8研究笔记 十七 CocosCreator UI组件 一 今天我们主要介绍CocosCreator
  • OPENCV基础(图像,视频)

    文章目录 1 图像读取 展示 写入 2 视频读取 展示 写入 1 图像读取 展示 写入 使用cv imread 函数读取图像 使用函数cv imshow 在窗口中显示图像 使用函数cv imwrite 保存图像 import numpy a