AVFrame 转mat
时间: 2024-01-01 15:06:33 浏览: 140
ffmpeg avframe to jpeg
将 AVFrame 转换为 OpenCV 的 Mat,可以使用以下代码:
```c++
#include <opencv2/opencv.hpp>
extern "C" {
#include <libavutil/imgutils.h>
#include <libswscale/swscale.h>
}
cv::Mat avframe_to_mat(AVFrame *frame) {
cv::Mat mat(frame->height, frame->width, CV_8UC3, frame->data[0]);
cv::Mat mat2;
cv::cvtColor(mat, mat2, cv::COLOR_BGR2RGB);
return mat2;
}
```
注意,这里假设输入的 AVFrame 是 YUV 格式的,如果是其他格式,需要进行相应的转换。同时,这里将 BGR 转为了 RGB,如果需要 BGR,可以将 `cv::COLOR_BGR2RGB` 改为 `cv::COLOR_RGB2BGR`。
阅读全文