面向python,Opencv学习笔记(一)---2

本文档介绍了OpenCV库在Python中的使用,包括读取和显示图像、调整窗口大小,以及加载和处理视频文件。通过cv.imread()、cv.namedWindow()和cv.imshow()函数读取和显示灰度图像,同时展示了如何使用cv.VideoCapture()函数读取视频并调整播放速度。代码示例详细解释了每个步骤,并提供了相关函数参数的说明。
摘要由CSDN通过智能技术生成


前言

要求opencv版本4.1.2.30(4.x >=版本),我的版本4.5.3
Opencv图像的读取和显示

1. 函数

cv.imread(filename,flags=?)
cv.namedWindow(filename,flags=?)
cv.imshow()
cv.destroyWindow()
cv.destroyAllWindows()
详细看下代码:

(图一)为cv.imread()参数2可选择标志:请添加图片描述
(图二)为cv.namedWindow()参数2可选择标志:
请添加图片描述

1.2、代码

代码如下(示例):

import cv2 as cv

img = cv.imread('./chapter_2/flower.jpg',flags=cv.IMREAD_GRAYSCALE)#此处为单通道灰度图读取
cv.imshow('Result1',img)
#cv.imread(filename[,flags])第二个参数设置读取图像的形式,默认使用彩色图像格式读取
#设置多个flags时用|隔开
#读取失败返回None

cv.namedWindow('Result',flags=cv.WINDOW_NORMAL)#此处为用户可随意调节窗口大小
cv.imshow('Result',img)
#cv.namedWindow(name,flags)创建一个窗口
#默认为 cv.WINDOW_AUTOSIZE|cv.WINDOW_KEEPRATIO|cv.WINDOW_GUI_EXPANDED
#设置多个标志时用|隔开

#cv.imshow(name,img) name:窗口名称,如果没有创建同名窗口就会创建一个为cv.WINDOW_AUTOSIZE标志的窗口
#如果创建了,如cv.namedWindow()函数


cv.waitKey(0)#程序暂停,参数0表示等待用户按键结束暂停该函数
cv.destroyAllWindows()#关闭所有窗口
#cv.destroyWindow(name) 关闭指定窗口


1.3.结果

右边图片窗口可调整大小
在这里插入图片描述

2.视频的加载与摄像头的调用

cv.VideoCapture()函数构造一个能够读取与处理视频文件的视频对象,并将该对象返回。
通过 ret,img = video.read() 读取一帧存放于img,ret判断是否读取成功,成功返回True,失败返回False。

2.1.1代码

import cv2 as cv

if __name__ =='__main__':
    video = cv.VideoCapture('./chapter_2/video.mp4')
    
    #判断是否成功创建视频流
    while video.isOpened():
        ret,frame = video.read()
        if ret is True:
            cv.imshow('Video',frame)

            #设置视频播放速度
            cv.waitKey(int(1000/video.get(cv.CAP_PROP_FPS)))
            #按下Q键退出

            if cv.waitKey(1) & 0xFF ==ord('q'):
                break
        else:
            break
    #输出相关信息
    print('视频中图像的宽度{}'.format(video.get(cv.CAP_PROP_FRAME_WIDTH)))
    print('视频中图像的高度{}'.format(video.get(cv.CAP_PROP_FRAME_HEIGHT)))
    print('视频帧率为{}'.format(video.get(cv.CAP_PROP_FPS)))
    print('视频总帧数{}'.format(video.get(cv.CAP_PROP_FRAME_COUNT)))
    #释放并关窗口
    video.release()
    cv.destroyAllWindows()
      

2.1.2 结果:

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值