Я ищу способ извлечения в отдельные изображения яркостного (Y), Cb (синий компонент), Cr (красный компонент), каналы изображений JPEG:
Используя существующие инструменты, как я могу извлечь в отдельные изображения каналы Luma, Cb, Cr изображения JPEG?
- Seattle Police Department image #1
- Seattle Police Department image #2
- Seattle Police Department image #3
Я хотел бы результаты, эквивалентные этим example from Wikipedia.
Вывод должен быть рассчитан непосредственно из данных сканирования в формате JPEG (SOS) и других данных в формате JPEG, , а не, чем «вычисленный» из изображений RGB, выводимых декомпрессором. Цель этой задачи - сделать изображения, которые представляют собой «необработанные данные», насколько это возможно.
Существуют ли существующие инструменты, которые могут выполнить это? Я подумываю о том, чтобы собрать что-то, используя Python, PyImage и т. Д., Но я удивлен, что поиск открытых исходных кодов или бесплатных инструментов оказался пустым. Я знаю, что есть много библиотек, которые могли бы помочь, хотя я открыт для понимания большего количества библиотек.
Для этого вопроса правильным ответом будет целая цепочка бесплатных и/или открытых инструментов, которые могут выполнять эту работу. Предпочтительными являются инструменты с источником. Эти инструменты могут работать на любой платформе, но Linux или Win32 будут сразу же полезны.
Ответ вдохновленный codelogic
Учитывая внедрение libjpeg, изменение djpeg.c и wrppm.c.
wrppm.c:
189: case JCS_RGB: 190: + case JCS_YCbCr: 191: /* emit header for raw PPM format */
djpeg.c
560: case FMT_PPM: 561: + cinfo.quantize_colors = 0; 562: + cinfo.out_color_space = JCS_YCbCr;
Очевидно, что это быстрый хак, потому что у меня есть собственная копия, где выход PPM всегда вынужден YCbCr, но это работает и я благодарю вас, кодологичный, за вашу логику Stone Code.
Спасибо, что привели меня за нос! Я сделал несколько однострочных файлов для djpeg.c и wrppm.c, которые позволяют мне выводить файлы в формате PDF в формате YCbCr, как вы предполагали. –