Python进阶之opencv图片和视频基本读取关闭

devtools/2024/12/27 14:11:48/

opencv_0">opencv

目录

  • opencv
    • pip 下载
    • 图片基本读取关闭
      • 导入前提
      • 读取显示和关闭
      • 图片属性
    • 视频读取显示和关闭
        • 视频读取

pip 下载


在终端下载

已经修改pip源可直接下载,未修改为下面代码+ -i 镜像网址

代码展示:

python">pip install opencv-python==3.4.18.65
pip install opencv-contrib-python==3.4.18.65

图片基本读取关闭


导入前提

图片和视频可以复制粘贴到当前根目录下,这里图片的地址就是:at1.png
在这里插入图片描述

读取显示和关闭

  • imread(‘图片地址’)
    读取图片
  • imshow(‘窗口命名’,图片变量)
    图片展示

图片直接print输出为含多个矩阵的矩阵

  • waitKey(数值)
    单位是ms,可以设置图片显示时长

有返回值,点击键盘如空格键,会关闭窗口,不再显示,返回值为键盘对应ASCII的数组,如空格停止返回值为32

  • destroyAllWindows()
    关闭所有窗口

图片属性

  • shape 返回(m,n,r),m高n宽r个通道
  • dtype 返回类型
  • size 返回大小,有色图为mnr,灰度图为m*n

代码展示:

python">import cv2
a = cv2.imread('at1.png')
print(a)
cv2.imshow('t1',a)
b = cv2.waitKey(0)
print(b)
cv2.destroyAllWindows()
print(f'shape:{a.shape}')
print(f'dtype:{a.dtype}')
print(f'size:{a.size}')

运行结果:
在这里插入图片描述
在这里插入图片描述

视频读取显示和关闭


视频读取
  • VideoCapture(‘图片地址’)
    读取视频
  • isOpened()
    判断视频是否打开,返回布尔值
  • read()
    逐帧读取视频

返回两个值,第一个是布尔值,表示是否能读取到,第二个是读取到的图片

  • imshow(‘窗口命名’,图片变量)
    显示图片,同一个命名相同会覆盖
  • waitKey(数值)
    间隔时间显示图片组成播放视频
  • release()
    释放资源
  • destroyAllWindows()
    关闭所有窗口

代码展示:

python">v = cv2.VideoCapture('av2.gif')
# 如果视频可以打开播放,如果不能打开,输出错误,退出
if not v.isOpened():print('错误')exit()
#可以播放进行读取
while True:# r为布尔值是否读取到,f为读取到的图片,按顺序读取r,f = v.read()
# 如果r为F,not r 为真,跳出循环,结束if not r:breakcv2.imshow('video',f)#当按空格键时,停止播放,跳出循环if cv2.waitKey(100) == 32:break
# 释放资源
v.release()
cv2.destroyAllWindows()

运行结果:
在这里插入图片描述


http://www.ppmy.cn/devtools/145831.html

相关文章

NLP基础知识 - 向量化

NLP基础知识 - 向量化 目录 NLP基础知识 - 向量化 NLP基础知识 - 向量化目录什么是向量化?为什么需要向量化?常见的向量化方法1. 词袋模型(Bag of Words, BoW)2. TF-IDF(词频-逆文档频率)3. 词嵌入&#x…

宠物行业的出路:在爱与陪伴中寻找增长新机遇

在当下的消费市场中,如果说有什么领域能够逆势而上,宠物行业无疑是一个亮点。当人们越来越注重生活品质和精神寄托时,宠物成为了许多人的重要伴侣。它们不仅仅是家庭的一员,更是情感的寄托和生活的调剂。然而,随着行业…

[Visual studio] 性能探测器

最近发现VS的profile还是很好用的, 可以找到项目代码的瓶颈,比如发现CPU的每一个函数的时间占比,分析代码耗时分布,和火焰图一样的效果 如何使用 1. 打开你的项目,调整成release状态 2. 点击调试->性能探测器 3…

Ubuntu重命名默认账户

Ubuntu重命名默认账户 用户管理常用命令 添加用户 useradd test设置密码 sudo passwd test删除用户 sudo userdel test开始进入步骤 一定!一定!一定!一定要切到root 一定!一定!一定!一定要切到root …

Selenium之Web元素定位

Web页面主要由HTML、CSS和JavaScript脚本构成,当前大部分页面都是动态页面。Web页面中的各类视觉元素,如文本框、按钮、复选框、图品、超链接和表等,在Selenium中都被称为页面元素(web Elements)。 Selenium提供了八种…

英文学术会议海报poster模板【可编辑】

英文学术会议海报poster模板【可编辑】 下载链接:学术会议海报poster模板【可编辑】 横版海报 竖版海报 下载链接:学术会议海报poster模板【可编辑】 提供了一套学术海报的PPT模板,适用于学术会议、研讨会等场合。 竖版,包含11…

梳理你的思路(从OOP到架构设计)_设计模式Observer模式

目录 1、Observer 模式 2、范例: Android Observer模式 1、Observer 模式 定义对象间的1:N依赖关系,以便当一个主体对象(如A)的状态发生改变时,所有依赖于它的众多对象(如B, C, D …)都得到通知,然后可向主体对象(A)取得最新状态内容。 如果Observer…

XTUOJ Pig Bank

题目描述 Alice有个存钱罐,里面已经有aa个硬币,Alice每天可以存bb个硬币,请问多少天后,能存到cc个硬币。 输入 第一行是样例数T(1≤T≤100)T(1≤T≤100)。 每个样例是三个整数a,b,c(0≤a≤100,1≤b,≤10,1≤c≤100)a,b,c(0≤a≤…