从libjpeg中的yuv中提取灰度

Posted

技术标签:

【中文标题】从libjpeg中的yuv中提取灰度【英文标题】:extract Grayscale from yuv in libjpeg 【发布时间】:2014-04-27 12:43:52 【问题描述】:

在 TurboJpeg 或底层 libJpeg API 上 - 是否有一个简单的函数用于从 Ycbcr 中提取 Y 分量(在我已经阅读了图像之后)?

我知道我可以遍历数据并提取字节。这不是已经实现了吗?

【问题讨论】:

【参考方案1】:

解压/解码时,使用TJPF_GRAY格式,它会丢弃颜色信息,只保留Y(发光)。

请参阅this part of the API 以供参考,以及that part if you are willing to transform it 或this function,如果您愿意将其直接解码为灰度图像。

【讨论】:

所以,如果我需要 YUV 和 Y 分量,那么我将其加载为 TJPF_GRAY,然后使用 tjTransform 来获取 Y 分量。对吗? TJPF_GRAY 等于 Y 分量。如果您同时需要 YUV 和 Y,您必须将其解码为 YUV,并使用 tjDecodeYUV 转换为每像素 1 个字节的“RGB”,即发光/灰色/Y 部分。 为此我需要新的 API 1.3.1 @mousomer 你甚至可能需要 1.4 版本,但由于它向后兼容,升级它应该没有问题。 @mousomer 我建议你联系项目的维护者(information@libjpeg-turbo.org),我上次联系他时有一些很好的经验。

以上是关于从libjpeg中的yuv中提取灰度的主要内容,如果未能解决你的问题,请参考以下文章

使用libjpeg 压缩yuv420到jpg (内存方式)

使用libjpeg C ++ Library从JPEG图像中提取RGB

libjpeg turbo tjCompressFromYUV

使用libjpeg-turboYUV转JPG

应用libjpeg提取jpeg质量因子

libjpeg-turbo的压缩速度和我程序中的libjpeg没有区别