opencv mat与avframe互转
原文:http://answers.opencv.org/question/36948/cvmat-to-avframe/
cv::Mat avframe_to_cvmat(AVFrame *frame)
{AVFrame dst;cv::Mat m;memset(&dst, 0, sizeof(dst));int w = frame->width, h = frame->height;m = cv::Mat(h, w, CV_8UC3);dst.data[0] = (uint8_t *)m.data;avpicture_fill( (AVPicture *)&dst, dst.data[0], PIX_FMT_BGR24, w, h);struct SwsContext *convert_ctx=NULL;enum PixelFormat src_pixfmt = (enum PixelFormat)frame->format;enum PixelFormat dst_pixfmt = PIX_FMT_BGR24;convert_ctx = sws_getContext(w, h, src_pixfmt, w, h, dst_pixfmt,SWS_FAST_BILINEAR, NULL, NULL, NULL);sws_scale(convert_ctx, frame->data, frame->linesize, 0, h,dst.data, dst.linesize);sws_freeContext(convert_ctx);return m;
}
AVFrame cvmat_to_avframe(cv::Mat* frame)
{AVFrame dst;cv::Size frameSize = frame->size();AVCodec *encoder = avcodec_find_encoder(AV_CODEC_ID_H264);AVFormatContext* outContainer = avformat_alloc_context();AVStream *outStream = avformat_new_stream(outContainer, encoder);avcodec_get_context_defaults3(outStream->codec, encoder);outStream->codec->pix_fmt = AV_PIX_FMT_YUV420P;outStream->codec->width = frame->cols;outStream->codec->height = frame->rows;avpicture_fill((AVPicture*)&dst, frame->data, PIX_FMT_BGR24, outStream->codec->width, outStream->codec->height);dst.width = frameSize.width;dst.height = frameSize.height;SaveFrame(&dst,dst.width,dst.height,0);return dst;
}
opencv mat与avframe互转相关推荐
- OpenCV实现Mat与vector,Mat与数组互转
OpenCV实现Mat与vector互转 [尊重原创,转载请注明出处]https://blog.csdn.net/guyuealian/article/details/80253066 1.Mat与v ...
- Dlib学习笔记:dlib array2d与 OpenCV Mat互转
Dlib学习笔记:dlib array2d与 OpenCV Mat互转 [尊重原创,转载请注明出处] http://blog.csdn.net/guyuealian/article/details/7 ...
- 完美解决OpenCV Mat 与 FFmpeg AVFrame 的相互转换
背景 最近做摄像头和麦克风实时采集推流的项目中,需要用OpenCV做实时美颜.需要将原始数据AVFame转换为Mat数据格式,进行美颜处理后再转成AVFrame进行编码,推流到流媒体服务器. 说明 其 ...
- 基于OpenCV的彩色空间互转
Datawhale干货 作者:姚童,Datawhale优秀学习者 图像彩色空间互转在图像处理中应用非常广泛,而且很多算法只对灰度图有效:另外,相比RGB,其他颜色空间(比如HSV.HSI)更具可分离性 ...
- FFmpeg转OpenCV Mat显示
FFmpeg一般采用SDL进行显示,如果不追求复杂的界面.交互和多线程功能,当然也可以使用OpenCV的imshow()方法进行显示了,而且实现起来比SDL更简单.方法也很简单,只需要把视频帧的BGR ...
- Dlib学习笔记:解决dlib array2d转 OpenCV Mat时颜色失真
Dlib学习笔记:解决dlib array2d转 OpenCV Mat时颜色失真 [尊重原创,转载请注明出处] http://blog.csdn.net/guyuealian/article/deta ...
- 【Halcon 字符串与HTuple互转,double与HTuple互转,Mat与HObject互转】
文章目录 1 字符串与HTuple互转 2 double与HTuple互转 3 Mat 与 HObject互转 4 HObject 转 Mat Opencv和Halcon之间有很多数据要转换,特此记录 ...
- Halcon 字符串与HTuple互转,double与HTuple互转,Mat与HObject互转
Opencv和Halcon之间有很多数据要转换,特此记录 1 字符串与HTuple互转 char *pImageName = "D:/data/temp.png"; HTuple ...
- pybind opencv mat
如果c++中frame裁剪了,把裁剪的图传给python,图片会出现乱码,解决方法: crop后再进行 mat.clone(),返回pyhon就可以了. 这个也可以参考: https://blog.c ...
最新文章
- 【FFmpeg】解码时refcounted_frames标志的使用
- Microsoft.Bcl.Build 1.0.10 稳定版发布
- 注意!!Java-File类
- pythonpil模块安装_centos 安装python PIL模块
- 关于mysql内存表的一个帖子(转载)
- elementui中同时上传多个文件_element ui 上传文件,批量一次上传多个文件,为什么是发送了多次请求,我想一次请求,然后发送多个文件怎么实现呢?...
- java中常量定义在interface中好还是定义在class中
- HTML 5 中的新元素
- python游戏开发框架_2018年Python主流框架有哪些?最流行的Python框架
- [转载] Python之NumPy基础:数组与向量化计算
- 记一次Pr安装转场插件导致AE报错问题解决
- 阿里云服务器怎么购买才更划算(新手教程)
- Python股票数据爬虫解读
- java 庖丁解牛_“庖丁解牛” 分词器实现
- linux cp命令的-f 参数
- php标题行,php 显示标题
- \t\t编程的精义 - 愚公移山
- Oracle 12c新特性--LREG进程专门负责注册实例服务
- 分享Delphi处理EXCEL源码
- Navicat for mysql 运行.sql 文件时 出现的错误
热门文章
- js 正则表达式奇偶字符串替换_Python中的正则表达式及其常用匹配函数用法简介...
- oracle数据库查询表语句,oracle数据库重要的查询语句
- 简述安装linux至少需要哪两个分区?还有哪些常用分区?,Linux试题
- 关不关机 扫地机器人_BOBOT扫地机器人能扫还能拖,你的家庭好助理
- add函数 pytorch_pytorch常用函数
- 我的世界javaui材质包怎么下载_【我的世界指南】七、使用皮肤
- python合并多个excel为一个_Python合并多个Excel数据
- Spring Security 和 Shiro 该如何选择?
- 这款 网络排查 神器,运维用了都说好,赶紧收藏~
- 皮一皮:狭路相逢勇者胜...