【发布时间】:2014-09-04 12:55:54
【问题描述】:
我正在尝试使用 OpenCV 将 YUV 图像转换为 RGB。我在这方面完全是新手。我创建了一个函数,它将 YUV 图像作为源并将其转换为 RGB。是这样的:
void ConvertYUVtoRGBA(const unsigned char *src, unsigned char *dest, int width, int height)
{
cv::Mat myuv(height + height/2, width, CV_8UC1, &src);
cv::Mat mrgb(height, width, CV_8UC4, &dest);
cv::cvtColor(myuv, mrgb, CV_YCrCb2RGB);
return;
}
这应该有效吗?我需要再次将 Mat 转换为 char* 吗?我很茫然,任何帮助将不胜感激。
【问题讨论】:
-
我已经看过这些帖子,但我无法使用它们的指定方式。您能指出我的代码存在的问题吗?
-
@d1xlord 你没有指定你正在处理的 YUV 格式。看看下面有多少个 YUV:fourcc.org/yuv.php。你真的想要 RGB,你已经指定了一个 4 通道 Mat 并且你的函数被称为
ConvertYUVtoRGBA所以我假设你的意思是 RGBA?或者也许是 BGRA? -
@jbutler483 这不应被视为与
Converting YUV into BGR or RGB in OpenCV的重复。首先,我认为这里的数据格式不同,其次,这个问题的公认答案是,imo,无论如何都不是最好的方法。
标签: opencv image-processing rgb yuv