opencv学习(视频读取)

1.cv2.COLOR_BGR2GRAY和cv2.IMREAD_GRAYSCALE的区别

在 OpenCV 中,cv2.COLOR_BGR2GRAY和cv2.IMREAD_GRAYSCALE都与图像灰度化有关,但它们的使用场景和作用机制有所不同:

cv2.IMREAD_GRAYSCALE:

这是一个读取图像时使用的标志参数

作用:在读取图像的同时直接将其转换为灰度图

使用方式:作为cv2.imread()函数的第二个参数

cv2.COLOR_BGR2GRAY:

这是一个颜色空间转换码

作用:将已读取的 BGR 彩色图像转换为灰度图

使用方式:作为cv2.cvtColor()函数的第二个参数(cv2.cvtColor()是Matplotlib和opencv颜色通道转换函数)

2.代码示例

python 复制代码
import cv2
import matplotlib.pyplot as plt
import numpy as np

vc=cv2.VideoCapture("111.mp4")

#检查是否打开正确
if vc.isOpened():
    open , frame=vc.read()
else:
    open = False
'''
vc 是一个视频捕获对象(通常通过 cv2.VideoCapture() 创建)
vc.isOpened() 检查视频是否成功打开
如果成功打开,调用 vc.read() 读取第一帧,返回值 open 是布尔值(是否成功读取),frame 是读取到的帧
如果无法打开视频,将 open 设为 False
'''

#遍历每一帧,进行播放
while open:
    ret,fra=vc.read()
    if fra is None:
        break
    if ret is True:
        gray =cv2.cvtColor(fra,cv2.COLOR_BGR2GRAY)
        cv2.imshow('result',gray)
        if cv2.waitKey(50)&0xFF==27:
            break
'''
while open 表示当视频正常打开时,进入循环播放
vc.read() 逐帧读取视频,ret 表示是否成功读取,fra 是当前帧
if fra is None 检查是否读取到空帧(视频结束),如果是则退出循环
cv2.cvtColor(fra, cv2.COLOR_BGR2GRAY) 将彩色帧转换为灰度图
cv2.imshow('result', gray) 在名为 'result' 的窗口中显示灰度帧
cv2.waitKey(50) 等待 50 毫秒,控制视频播放速度(数值越小播放越快)
& 0xFF == 27   27是ASCII值,表示ESC键,该代码表示检测是否按下 ESC 键,按下则退出循环
'''
vc.release()# 释放视频捕获对象,关闭视频文件或摄像头
cv2.destroyAllWindows()#关闭所有 OpenCV 创建的窗口
相关推荐
m沐沐2 分钟前
【计算机视觉】人脸识别三大经典算法:LBPH、Eigenfaces、FisherFaces 原理与实战
图像处理·人工智能·深度学习·opencv·算法·机器学习·计算机视觉
安吉升科技7 分钟前
图书馆、博物馆双目ai客流统计摄像头技术机理与运行架构解析
人工智能
武子康7 分钟前
低延迟不是更快地猜:EOU / Barge-in / Turn Protocol 必须统一(4 种结束 + Generation Fencing + 9 类可复现场景)
人工智能·后端·llm
您^_^9 分钟前
使用技巧(十一):Claude Code 最强审问官 —— grill-me 深度指南,装完先别写代码
人工智能·windows·个人开发·claudecode·deepseek v4 pro
小+不通文墨11 分钟前
--no-multibyte-chars 解决OLED_data.c移植后中文乱码问题
c语言·经验分享·笔记·学习
ye小杰榨 问鼎中原ZP12 分钟前
初探:用 FastAPI 搭建你的第一个 AI Agent 接口
人工智能·fastapi
AOwhisky14 分钟前
AI审AI:GitLab上线AI代码审查,开发者可以松一口气了吗?
人工智能·gitlab
Asize15 分钟前
别只会改 Prompt:用 AI Loop 把大模型变成可验收的执行系统
人工智能
东风破_16 分钟前
Temperature 越高越有创造力吗?从概率分布、Top-K 到 LangChain 工作流
人工智能
今天AI了吗17 分钟前
Spring AI 框架实战:Java 后端集成大模型的架构设计与工程落地
java·人工智能·python·spring·机器学习