opencv 使 utf8_t NV12数据保存jpg, 高级方案
时间: 2023-11-09 09:10:14 浏览: 293
通过封装的opencv函数进行yuv.nv12到jpg的转换并画框显示
要将UTF8_t NV12数据保存为JPG格式,您可以使用OpenCV库中的cv::Mat类。首先,您需要将NV12数据转换为cv::Mat对象。这可以通过以下代码完成:
```c++
int width = 1920; // 图像宽度
int height = 1080; // 图像高度
int size = width * height * 1.5; // NV12数据大小(Y:U:V = 4:2:0)
// 从NV12数据中创建一个cv::Mat对象
cv::Mat nv12Mat(height * 1.5, width, CV_8UC1, nv12Data);
// 将YUV数据转换为BGR格式
cv::Mat bgrMat;
cv::cvtColor(nv12Mat, bgrMat, cv::COLOR_YUV2BGR_NV12);
```
然后,您可以使用以下代码将cv::Mat对象保存为JPG文件:
```c++
std::vector<int> params;
params.push_back(cv::IMWRITE_JPEG_QUALITY);
params.push_back(95); // JPG质量设置为95
bool result = cv::imwrite("output.jpg", bgrMat, params);
if (!result) {
std::cout << "Failed to save JPG file!" << std::endl;
}
```
此代码将图像保存为JPG格式,并将质量设置为95。您可以根据需要调整质量参数。
阅读全文