我正在寻找一种方法将jpeg图像的luma(y)、cb(蓝色分量)、cr(红色分量)、通道提取成单独的图像:
我想要和这个相当的结果
example from Wikipedia.
必须计算输出
直接地
从jpeg开始扫描(sos)数据和jpeg中的其他数据,
相当地
而不是从解压器输出的RGB图像中进行“反向计算”。此任务的目的是生成尽可能表示“原始数据”的图像。
是否有现有的工具可以实现这一点?我正在考虑使用python、pyimage等将一些东西放在一起,但我惊讶于我对开源或免费工具的搜索结果是空的。我知道有很多图书馆可以帮助我,尽管我愿意了解更多的图书馆。
对于这个问题,正确的答案应该是一个由免费和/或开源工具组成的工具链,可以完成这项工作。首选具有源代码的工具。这些工具可以在任何平台上运行,但Linux或Win32将立即发挥作用。
受代码逻辑启发的答案
给定libjpeg实现,更改djpeg.c和wrpm.c。
C:
189: case JCS_RGB:
190: + case JCS_YCbCr:
191: /* emit header for raw PPM format */
DJPEG
560: case FMT_PPM:
561: + cinfo.quantize_colors = 0;
562: + cinfo.out_color_space = JCS_YCbCr;
显然,这是快速破解,因为我有一个私有副本,在这里PPM输出总是被强制到YCBCR,但它是有效的,我感谢您,代码逻辑,为您的石代码逻辑。