我正尝试通过以下代码片段将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);
但是结果图像显然不正确:
如果能提供任何建议,我将不胜感激!