我是靠谱客的博主 温婉小甜瓜,最近开发中收集的这篇文章主要介绍ffmpeg到opencv的格式转换,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

       首先通过ffmpeg的sws_scale函数可以将原视频格式转换为YUV格式,保存在AVPicture结构体里,而AVPicture结构体里的data成员即储存着视频数据,下面通过一段代码就可以将YUV格式的视频转换成opencv的Mat 格式:

            Mat mYUV(c->height + c->height/2, c->width, CV_8UC1, * pict.data);//<span style="font-family: Arial, Helvetica, sans-serif;"> pict.data即为视频的数据</span>
            Mat mRGB(c->height, c->width, CV_8UC3);
            cv::cvtColor(mYUV,mRGB,CV_YUV2BGR_YV12);

      这一工作花费了我大半天的时间,以为这种格式转换很复杂,其实很简单:只要得到原视频的数据data,就可以用此data初始化任何库的图像容器,因为即便是各个库的图片容器不一样,但是视频的数据格式确实一样的,YUV的就是YUV的,RGB的就是RGB的,只要我能得到这个“数据”,就能用此数据初始化任何图片容器,这个过程也就是拿这些数据去填充容器,容器虽然不一样,但是数据一样

最后

以上就是温婉小甜瓜为你收集整理的ffmpeg到opencv的格式转换的全部内容,希望文章能够帮你解决ffmpeg到opencv的格式转换所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(55)

评论列表共有 0 条评论

立即
投稿
返回
顶部