关于OpenCV文件读写图片与视频的一些心得

本文介绍了OpenCV在处理图片和视频时,文件格式与解码方式的关系。强调文件后缀并不影响读取,OpenCV支持多种格式。同时,详细讨论了如何确定视频的编码、帧率和尺寸,以及如何使OpenCV支持H.264编码,包括动态库的配置和使用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

读写视频时的文件格式名

首先明确一点,无论是对于图片还是视频,其文件名后缀仅仅是为了方便操作系统关联打开文件的应用程序,程序解码图片与视频的方式与文件名后缀无关。他们所使用的编码是在文件内部声明的,应用程序打开他们的时候会读取其声明,然后再采取相应的解码方式去解码播放或者显示。比如某图片本身格式是.png,被错误改成了.jpg甚至是丢失,只要文件本身没有损坏,图片查看器依旧会按.png去解码。

OpenCV也是一个原理,使用imread()或VideoCapture类去加载图片或视频时,文件格式名无关紧要,只要文件本身格式是OpenCV所支持的,就可以正确加载。

 

另一方面,使用imwrite()或VideoWriter类去生成图片或视频时,必须指定其格式后缀名,因为这将决定OpenCV使用哪种编码方式去保存。

顺便提一句,生成视频的时候,其格式名要与其解编码器兼容,如使用.avi格式时,要使用VideoWriter::fourcc('M','J','P','G')解编码器(即Motion JPEG)或VideoWriter::fourcc('H','2','6','4')解编码器(即H.264)等;若使用.mp4格式却使用Motion JPEG等不兼容的解编码器,则会导致生成的视频不可用。

 

OpenCV获取原视频的编码方式、帧率、宽高

#include<iostream>
#include <opencv2/opencv.hpp>
using n
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值