欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

将图像转换成.avi视频(opencv实现)

程序员文章站 2022-06-16 18:51:25
1、...

背景:

  传统的目标检测(如canny边缘检测)不一定在每个不同的场景下都能正确的检测出各个类别的目标物体,所以这里先人工进行场景分类,然后针对每个场景设计一种传统目标检测的方法。

  由于要人工的进行场景分类,所以把每个场景的图像都分别放在一个文件夹里,然后分别将每个文件夹里的图像都生成一个场景的视频就可以了,后续只要针对不同的场景视频设计传统目标检测的方法即可。

将文件夹里的图像转换成.avi视频实现:

import os
import cv2
import numpy as np

path = r'C:\Users\13486\Desktop\biye_photo/'
filelist = os.listdir(path)

fps = 1 #视频每秒1帧
size = (2880, 2880) #需要转为视频的图片的尺寸
#视频保存在当前目录下
video = cv2.VideoWriter(r"C:\Users\13486\Desktop\photo.avi", cv2.VideoWriter_fourcc('I', '4', '2', '0'), fps, size)
for item in filelist:
    # 找到路径中所有后缀名为.JPEG的文件,可以更换为其它图像格式
    if item.endswith('.JPEG'):
        item = path + item
        img = cv2.imread(item)
        img = cv2.resize(img, (2880, 2880))#如果原始图片的尺寸不一样
        video.write(img)
video.release()
cv2.destroyAllWindows()

注意:

(1)使用cv2.VideoWriter_fourcc('I', '4', '2', '0')编码参数,同一个文件夹里图像的大小必须是一样的,可以通过resize实现;

(2)cv2.VideoWriter_fourcc()是编码类型参数:

cv2.VideoWriter_fourcc('I','4','2','0')---未压缩的YUV颜色编码,4:2:0色度子采样。兼容性好,但文件较大。文件扩展名.avi;

cv2.VideoWriter_fourcc('P','I','M','1')---MPEG-1编码类型,文件扩展名.avi。随机访问,灵活的帧率、可变的图像尺寸、定义了I-帧、P-帧和B-帧 、运动补偿可跨越多个帧 、半像素精度的运动向量 、量化矩阵、GOF结构 、slice结构 、技术细节、输入视频格式;

cv2.VideoWriter_fourcc('X','V','I','D')---MPEG-4编码类型,视频大小为平均值,MPEG4所需要的空间是MPEG1或M-JPEG的1/10,它对运动物体可以保证有良好的清晰度,间/时间/画质具有可调性。文件扩展名.avi;

cv2.VideoWriter_fourcc('T','H','E','O')---OGGVorbis,音频压缩格式,有损压缩,类似于MP3等的音乐格式。,兼容性差,件扩展名.ogv;

cv2.VideoWriter_fourcc('F','L','V','1')---FLV是FLASH VIDEO的简称,FLV流媒体格式是一种新的视频格式。由于它形成的文件极小、加载速度极快,使得网络观看视频文件成为可能,它的出现有效地解决了视频文件导入Flash后,使导出的SWF文件体积庞大,不能在网络上很好的使用等缺点。文件扩展名为.flv

本文地址:https://blog.csdn.net/jancis/article/details/107246992