opencv - OpenCV C++ 将 YUV420 转换为 RGB 问题
问题描述
我试图通过下面的代码片段将 YUV420 缓冲区写入 jpg 图像:
cv::Mat yuvImg;
yuvImg.create(dec.GetHeight() * 3 / 2, dec.GetWidth(), CV_8UC3);
memcpy(yuvImg.data, yuvBuf, dec.GetHeight() * 3 / 2 * dec.GetWidth() * sizeof(unsigned char));
cv::Mat rgbImg;
cv::cvtColor(yuvImg, rgbImg, CV_YUV2BGR_I420);
char img_path[100];
sprintf(img_path, "decoded_imgs/%d.jpg", frame_cnt++);
cv::imwrite(img_path, rgbImg);
但生成的图像显然不正确:
如果能提供任何建议,我将不胜感激!!
解决方案
推荐阅读
- bash - “./wallet balance”是什么意思?
- sql - 如何仅在字母组成单词时(即&Co。)而不是在它们是单词的一部分时才删除字母(共同构造)
- php - Textarea 不显示从 mysql 记录中提取的信息
- arrays - 将数组转换为二进制数组
- flutter - onPressed按钮时如何从ListView中删除TextField?
- java - 无法在 Mac 上通过 IntelliJ 运行处理文件
- winforms - 缺少 Microsoft.ReportViewer.DataVisualization 版本 11
- javascript - 反应js。如何制作具有这种结构的组件:
组件描述 - mysql - mysql 8 MyISAM“显示表状态”行数
- python - 模块崩溃时未处理 Python 异常