cv::Mat装载yuv420数据初始化
时间: 2023-07-02 19:05:01 浏览: 102
可以使用 OpenCV 中的 cv::Mat 类来装载 YUV420 数据。YUV420 格式是一种常用的视频格式,其中包含了亮度(Y)和色度(U、V)三个分量,其中 Y 分量占用总数据量的一半,U 和 V 分量各占用数据量的四分之一。
下面是一个示例代码:
```c++
// 假设已经读取了 YUV420 数据到 yuv_data 指针中,且图像大小为 width x height
// 初始化 Mat 对象,分别装载亮度、色度 U、色度 V 分量
cv::Mat y_mat(height, width, CV_8UC1, yuv_data);
cv::Mat u_mat(height / 2, width / 2, CV_8UC1, yuv_data + width * height);
cv::Mat v_mat(height / 2, width / 2, CV_8UC1, yuv_data + width * height * 5 / 4);
// 将色度 U、色度 V 分量上采样并合并为彩色图像
cv::Mat uv_mat;
cv::resize(u_mat, uv_mat, cv::Size(width, height / 2), 0, 0, cv::INTER_LINEAR);
cv::resize(v_mat, uv_mat, cv::Size(width, height), 0, 0, cv::INTER_LINEAR);
cv::Mat bgr_mat;
cv::cvtColor(cv::Mat(height, width, CV_8UC3), bgr_mat, cv::COLOR_YUV2BGR_I420);
```
这里首先使用 `cv::Mat` 对象分别装载 Y、U、V 分量,然后将 U、V 分量上采样到与 Y 分量相同的大小,再将 U、V 分量合并为一张彩色图像。最后使用 `cv::cvtColor` 函数将 YUV420 转换为 BGR 格式的彩色图像。
相关推荐
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)