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

使用 OpenCV 读取和显示图像与视频

概述

OpenCV 是一个强大的计算机视觉库,广泛应用于图像处理和视频处理等领域。本文将详细介绍如何使用 OpenCV 在 Python 中读取和显示图像以及视频,并通过具体的代码示例来展示整个过程。

环境准备

在开始之前,请确保已经安装了 OpenCV 库。如果没有安装,可以通过以下命令进行安装:

pip install opencv-python
完整代码
import cv2def read_img():"""读取图片:return:"""img = cv2.imread(r'./resources/lena.jpeg')cv2.imshow('lena img', img)cv2.waitKey(0)def read_video():"""读取视频/摄像头:return:"""# 视频路径为获取资源,id序号则为摄像头id,0为默认第一个摄像头idcap = cv2.VideoCapture(r'./resources/video.mp4')# cap = cv2.VideoCapture(0)# cap propId 0-18cap.set(3, 800)    # 3为宽cap.set(4, 600)  # 4为高cap.set(10, 5)  # 10为亮度while True:success, img = cap.read()if success:cv2.imshow('video', img)else:breakif cv2.waitKey(1) & 0xFF == ord('q'):# 有按键则返回按键ASCII码,无按键则返回-1# 取按键返回ASCII码二进制后8位,为按键'q'退出循环breakcap.release()cv2.destroyAllWindows()if __name__ == '__main__':# read_img()read_video()
示例代码详解
1. 读取和显示图像
import cv2def read_img():"""读取图片:return:"""img = cv2.imread(r'./resources/lena.jpeg')cv2.imshow('lena img', img)cv2.waitKey(0)
  • 读取图像

    img = cv2.imread(r'./resources/lena.jpeg')
    
    • 使用 cv2.imread() 函数读取图像文件。路径使用原始字符串(r'...')以避免转义字符的问题。
  • 显示图像

    cv2.imshow('lena img', img)
    cv2.waitKey(0)
    
    • 使用 cv2.imshow() 函数显示图像。第一个参数是窗口名称,第二个参数是要显示的图像。
    • cv2.waitKey(0) 使程序等待用户按键后退出。0 表示无限期等待。
2. 读取和显示视频
def read_video():"""读取视频/摄像头:return:"""# 视频路径为获取资源,id序号则为摄像头id,0为默认第一个摄像头idcap = cv2.VideoCapture(r'./resources/video.mp4')# cap = cv2.VideoCapture(0)# cap propId 0-18cap.set(3, 800)    # 3为宽cap.set(4, 600)    # 4为高cap.set(10, 5)     # 10为亮度while True:success, img = cap.read()if success:cv2.imshow('video', img)else:breakif cv2.waitKey(1) & 0xFF == ord('q'):# 有按键则返回按键ASCII码,无按键则返回-1# 取按键返回ASCII码二进制后8位,为按键'q'退出循环breakcap.release()cv2.destroyAllWindows()
  • 读取视频或摄像头

    cap = cv2.VideoCapture(r'./resources/video.mp4')
    # cap = cv2.VideoCapture(0)
    
    • 使用 cv2.VideoCapture() 函数读取视频文件或摄像头。传入视频文件路径或摄像头ID(例如 0 表示默认摄像头)。
  • 设置视频属性

    cap.set(3, 800)    # 3为宽
    cap.set(4, 600)    # 4为高
    cap.set(10, 5)     # 10为亮度
    
    • 使用 cap.set() 方法设置视频捕获属性。参数 3 表示宽度,4 表示高度,10 表示亮度。
  • 读取和显示视频帧

    while True:success, img = cap.read()if success:cv2.imshow('video', img)else:break
    
    • 使用 cap.read() 方法读取视频帧。如果读取成功,successTrueimg 为当前帧的图像;否则,successFalse,表示视频结束或读取失败。
  • 按键检测

    if cv2.waitKey(1) & 0xFF == ord('q'):break
    
    • 使用 cv2.waitKey(1) 等待1毫秒,如果有按键按下,则返回按键的ASCII码。& 0xFF 用于取按键ASCII码的后8位。ord('q') 返回字符 ‘q’ 的ASCII码。如果按键为 ‘q’,则退出循环。
  • 释放资源

    cap.release()
    cv2.destroyAllWindows()
    
    • 使用 cap.release() 释放视频捕获对象。
    • 使用 cv2.destroyAllWindows() 关闭所有OpenCV窗口。
主函数
if __name__ == '__main__':# read_img()read_video()
  • 主函数
    • if __name__ == '__main__': 确保当脚本直接运行时才执行以下代码。
    • 调用 read_img()read_video() 函数来读取和显示图像或视频。
总结

本文详细介绍了如何使用 OpenCV 在 Python 中读取和显示图像以及视频,并通过具体的代码示例展示了整个过程。通过使用 cv2.imread()cv2.imshow()cv2.VideoCapture()cv2.waitKey() 等函数,我们可以轻松地处理图像和视频数据。

希望本文能帮助你在实际项目中更好地应用 OpenCV 进行图像和视频处理。如果有任何疑问或需要进一步的帮助,请随时提问!


以上就是关于使用 OpenCV 读取和显示图像与视频的技术讲解,希望对你的学习和实践有所帮助!如果有任何疑问或需要进一步的帮助,请随时提问!

http://www.lryc.cn/news/475403.html

相关文章:

  • 【1】Elasticsearch 30分钟快速入门
  • 教材管理系统设计与实现
  • 软考(中级-软件设计师)数据库篇(1101)
  • 安装nscd及glibc包冲突降级【centos7】
  • Qt字符编码
  • Ubuntu用docker安装AWVS和Nessus(含破解)
  • tauri开发中如果取消了默认的菜单项,复制黏贴撤销等功能也就没有了,解决办法
  • HNU-小学期-专业综合设计
  • Linux安装es和kibana
  • 第二十六章 Vue之在当前组件范围内获取dom元素和组件实例
  • Markdown 区块
  • ctf文件上传题小总结与记录
  • 什么是QAM
  • GraphQL 与 Elasticsearch 相遇:使用 Hasura DDN 构建可扩展、支持 AI 的应用程序
  • 面试题整理 3
  • 数据结构(Java)—— 认识泛型
  • 处理后的视频如何加上音频信息?
  • 02LangChain 实战课——安装入门
  • Python函数中关键字参数、位置参数、默认参数有何不同
  • PNG 格式和 JPG 格式都什么时候用
  • Qt 练习做一个登录界面
  • 计算机视觉实验一:图像基础处理
  • 【WebApi】C# webapi 后端接收部分属性
  • Java 使用 Redis
  • 【ONE·Linux || 高级IO(二)】
  • 将 IBM WatsonX 数据与 Milvus 结合使用,构建用于知识检索的智能 Slack 机器人
  • 2024 网鼎杯 CTF --- Crypto wp
  • 深度学习基础知识-损失函数
  • 《逆向记录》
  • chatgpt3.5权重参数有多少MB;llama7B权重参数有多少MB