初学opencv学习——图像的 IO操作

初学opencv学习——图像的 IO操作

(1)读取视频

<span><span>video </span></span>

=

<span><span> cv2</span></span>

.

<span><span>VideoCapture</span></span>

(“video.demo.mp4”)

2 )检查视频是否打开正确

检查是否打开正确

if video.isOpened():

我们都知道视频和游戏其实都是由图像组成的,通过访问图像的帧数连贯形成的,这里也是一样

video.read()一帧一帧地读取

open 得到的是一个布尔值,就是 True 或者 False

frame 得到当前这一帧的图像

open, frame = video.read()

else:

open = False

3 )遍历每一帧图像

while open:

ret, frame = video.read()

如果读到的帧数不为空,那么就继续读取,如果为空,就退出

if frame is None:

break

if ret == True:

转换为灰度图

gray = cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY)

cv2.imshow(“video”,gray)

这里使用 waitKey 可以控制视频的播放速度,数值越小,播放速度越快

这里等于 27 也即是说按下 ESC 键即可退出该窗口

if cv2.waitKey(10) & 0xFF == 27:

break

video.release()

cv2.destroyAllWindows()

当然,上面的程序是将原视频设置为灰色的,想要显示的是原视频,只需要修改上述代码中的两个部分就行了

  • 注释掉设置灰色的部分
  • 将原视频显示在窗口上

图像处理(Getting Started with Images)

学习使用cv2.imread(), cv2.imshow() , cv2.imwrite()这三个函数,以及Matplotlib 库显示图像。

读取图像

cv2.imread(filename, flags=None)

import cv2

img = cv2.imread(r’/home/luke/图片/2018-08-09 11-58-52.jpg’,cv2.IMREAD_COLOR)

filename 参数u用于定位图片,可以是当前路径或绝对路径,注意windows平台,字符串前加 r

第二项参数的默认值是:cv2.IMREAD_COLOR,读取色彩图像,还可以是

cv2.IMREAD_GRAYSCALE :读取灰度图像

cv2.IMREAD_UNCHANGED :读取图像包含 alpha channel

显示图像

cv2.imshow() 函数将图像显示到窗口,窗口大小自动适应图像大小。

cv2.imshow(‘image’,img)

参数1:窗口标题名称

参数2:已读取的显示图像

cv2.waitKey(0)

cv2.waitKey()函数等待任意按键,

参数是等待超时时间,时间单位为ms;参数为0时,等待直到任意键按下,

返回值是按下的键值

cv2.destroyAllWindows()

销毁所有打开的窗口

保存图像

img = cv2.imread(‘/home/luke/图片/2018-07-19 19-47-33屏幕截图.png’,0)

cv2.imshow(‘image’,img)

k = cv2.waitKey(0)

k = cv2.waitKey(0) & 0xFF

if k == 27: # wait for ESC key to exit

cv2.destroyAllWindows()

elif k == ord(‘s’): # wait for ‘s’ key to save and exit

cv2.imwrite(‘/home/luke/图片/test.png’,img)

cv2.destroyAllWindows()

视频处理

主要学习函数:

  • cv2.VideoCapture(),
  • cv2.VideoWriter()

读取摄像头播放视频

要播放摄像头视频,需要先捕捉摄像头视频流,创造一个VideoCapture对象。

cv2.VideoCapture()用于

import numpy as np
import cv2

cap = cv2.VideoCapture('video/demo.mp4')
while(cap.isOpened()):
   ret,frame = cap.read()
   gray = cv2.cvtColor(frame,cv2.COLOR_BGR2GRAY)
   cv2.imshow('frame',gray)
   if cv2.waitKey(1) & 0xFF == ord('q'):
        这里使用 waitKey 可以控制视频的播放速度,数值越小,播放速度越快
       break
cap.release()
cv2.destroyAllWindows()

创建VideoCapture 对象,参数可以使video 设备序号,从0 开始,也可以是设备名称/dev/video0 cap 对象代表的摄像头节点可能还未被初始化,直接读取可能会报错可以使用cap.isOpened()函数判断,返回值为True ,表示已打开;否则用cap.open()函数打开。

cap.get(propId)函数可以获取视频相关参数

cap.set(propId, vaule),设置视频相关参数

播放视频文件

保存视频文件

VideoWriter ()是用来保存视频的函数,其作用是将录制的视频保存成 filename

fourcc = cv2.VideoWriter_fourcc(*’XVID’)

out = cv2.VideoWriter(‘out.avi’,fourcc,20.0 ,(640 ,480 ))

import numpy as np
import cv2

cap = cv2.VideoCapture(0)
Define the codec and create VideoWriter object
fourcc = cv2.VideoWriter_fourcc(*'XVID')
out = cv2.VideoWriter('video/demo.mp4',fourcc, 20.0, (640,480))
while(cap.isOpened()):
    ret, frame = cap.read()
    if ret==True:
        frame = cv2.flip(frame,0)
        # write the flipped frame,垂直方向翻转
        out.write(frame)
        cv2.imshow('frame',frame)
        if cv2.waitKey(1) & 0xFF == ord('q'):
            break
    else:
        break
Release everything if job is finished
cap.release()
out.release()
cv2.destroyAllWindows()

Original: https://blog.csdn.net/Fucktheworlds/article/details/124302167
Author: Fucktheworlds
Title: 初学opencv学习——图像的 IO操作

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/705055/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球