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

opencv

目录

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:
        break
    cv2.imshow('video',f)
    #当按空格键时,停止播放,跳出循环
    if cv2.waitKey(100) == 32:
        break
# 释放资源
v.release()
cv2.destroyAllWindows()

运行结果:

相关推荐
m0_748554812 小时前
golang如何实现用户订阅偏好管理_golang用户订阅偏好管理实现总结
jvm·数据库·python
smj2302_796826523 小时前
解决leetcode第3911题.移除子数组元素后第k小偶数
数据结构·python·算法·leetcode
阿正呀3 小时前
Redis怎样实现本地缓存的高效失效通知
jvm·数据库·python
m0_726365834 小时前
Ai漫剧系统 几分钟,让AI 把一篇小说变成了一部漫剧成片:从剧本到视频的全流程系统实现
人工智能·语言模型·ai作画·音视频
2501_901200534 小时前
mysql如何设置InnoDB引擎参数_优化innodb_buffer_pool
jvm·数据库·python
_.Switch4 小时前
东方财富股票数据JS逆向:secids字段和AES加密实战
开发语言·前端·javascript·网络·爬虫·python·ecmascript
Mr_sst4 小时前
Claude Code 部署与使用保姆级教程(2026 最新)
python·ai
瞎某某Blinder4 小时前
DFT学习记录[6]基于 HES06的能带计算+有效质量计算
python·学习·程序人生·数据挖掘·云计算·学习方法
m0_495496415 小时前
mysql处理复杂SQL性能_InnoDB优化器与MyISAM差异
jvm·数据库·python
forEverPlume5 小时前
PHP怎么使用Eloquent Attribute Composition属性组合_Laravel通过组合构建复杂属性【方法】
jvm·数据库·python