我需要从 JPEG 图像中提取 CbCr 色度数据,用于图像分析。 (在 C/C++ 中)
据我了解,JPEG“原始数据”是经过压缩的 YCbCr。我的这个假设是否正确?如何针对给定图像验证这一点?
我目前正在使用 TubroJpeg 库。 tjDecompressToYUV 的文档说:
Decompress a JPEG image to a YUV planar image. This function performs JPEG but leaves out the color conversion step, so a planar YUV is generated instead of an RGB image.
我对这个函数的输出有点困惑。我认为 YUV 和 YCbCr 是略有不同的颜色空间。这是否意味着对于 UV 色度我需要操纵输出,并且输出“UV”分量实际上是 CbCr 分量?
最佳答案
JPEG 标准不了解颜色空间。它只是压缩颜色分量。
If 是指定颜色格式的特定文件格式(例如 JFIF、EXIF、ADOBE)。在大多数情况下,它是 YCbCR。在某些情况下它不是(一些 adobe)。
这个链接可以解释混淆
http://en.wikipedia.org/wiki/Yuv#Confusion_with_Y.27CbCr
YUV 和 YCbCR 相似,但又不同。如果没有颜色转换,我不得不相信他们把YUV和YCbCr搞混了。
关于c++ - YCbCr 直接从 jpeg 加载器输入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22915682/