gpt4 book ai didi

使用C编程将RGB图像转换为YUV

转载 作者:行者123 更新时间:2023-11-30 15:52:54 26 4
gpt4 key购买 nike

我有位图和 JPEG 格式的图像。我必须通过获得所有像素的 RGB 值来从图像中检索像素。请建议一种从图像文件中检索 RGB 值的方法。如果 C 中有任何可用的函数,我将不胜感激。

最佳答案

您可以使用 libJPEG 从 JPEG 解析并获取位图- 这很简单

假设您在“rgb”中有 RGB bimap。结果将被放置在“yuv420p” vector 中。

void rgb2yuv420p(std::vector<BYTE>& rgb, std::vector<BYTE>& yuv420p)
{
unsigned int i = 0;
unsigned int numpixels = width * height;
unsigned int ui = numpixels;
unsigned int vi = numpixels + numpixels / 4;
unsigned int s = 0;

#define sR (BYTE)(rgb[s+2])
#define sG (BYTE)(rgb[s+1])
#define sB (BYTE)(rgb[s+0])

yuv420p.resize(numpixels * 3 / 2);

for (int j = 0; j < height; j++)
for (int k = 0; k < width; k++)
{
yuv420p[i] = (BYTE)( (66*sR + 129*sG + 25*sB + 128) >> 8) + 16;

if (0 == j%2 && 0 == k%2)
{
yuv420p[ui++] = (BYTE)( (-38*sR - 74*sG + 112*sB + 128) >> 8) + 128;
yuv420p[vi++] = (BYTE)( (112*sR - 94*sG - 18*sB + 128) >> 8) + 128;
}
i++;
s += colors;
}
}

关于使用C编程将RGB图像转换为YUV,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14018666/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com