Мне нужно извлечь данные цветности CbCr из изображений JPEG, для анализа изображений. (в C / C ++)
Насколько я понимаю, в JPEG «сырые данные» сжимается YCbCr. Я прав в этом предположении? Как я могу проверить это для данного изображения?
В настоящее время я использую TubroJpeg lib. Документация tjDecompressToYUV говорит что это:
Распакуйте изображение JPEG в плоское изображение YUV. Эта функция
выполняет JPEG, но пропускает шаг преобразования цвета, поэтому
вместо изображения RGB генерируется плоское YUV.
Я немного запутался относительно вывода этой функции. Я думал, что YUV и YCbCr были немного разными цветовыми пространствами. Означает ли это, что для УФ-цветности мне нужно манипулировать выходным сигналом, а выходные компоненты «УФ» на самом деле являются компонентами CbCr?
Стандарт JPEG не знает цветовых пространств. Он просто сжимает компоненты цвета.
If — это конкретный формат файла (например, JFIF, EXIF, ADOBE), который определяет формат цвета. В большинстве случаев это YCbCR. В некоторых случаях это не так (некоторые Adobe).
Эта ссылка может объяснить путаницу
http://en.wikipedia.org/wiki/Yuv#Confusion_with_Y.27CbCr
YUV и YCbCR похожи, но различны. Если нет преобразования цвета, я должен верить, что они перепутали YUV и YCbCr.
Других решений пока нет …