我正在开发一款应用于Android上的NV21 YUV格式的应用程序。只是为了检查我的算法是什么,我需要将YUV格式保存为RGB,然后再保存到位图文件以查看它。所以我为此编写的算法非常简单。 程序加载bitmab RGB图像将其转换为NV21,然后将其转换为RGB并保存到磁盘。 我实施了Wikipedia YUV subject中给出的转化。我正在使用 BT.601 的全摆动用于RGB到YUV转换,并且 Y' UV420sp(NV21)到RGB转换(Android)用于RGB到YUV。然而,图像失去了它的颜色。我检查了我的代码(这是非常简单的未经优化和简单)多次,我没有发现任何错误。我正在使用的转换有什么问题吗?
输入图片:
输出图片:
答案 0 :(得分:1)
对你的代码一无所知,几乎不可能说清楚。
但是,图像损坏的方式表示:
我建议你在从RGB转换到RGB时仔细检查U / V指针的正确处理。 Rememer,NV21是混合平面的,4:2:0次采样,而泛型RGB(特别是如果你用它来进行位图导入/导出)可以是平面的或交错的,但不能进行二次采样。
此外,如果提供一些显示如何处理事情的代码,通常会更容易获得全面的建议。