【发布时间】:2015-07-17 11:42:51
【问题描述】:
我正在使用 OpenCV 和 Python。我已将 jpeg 图像加载到 numpy 数组中。现在我想把它保存回jpeg格式,但是由于图像没有被修改,我不想再次压缩它。是否可以从 numpy 数组创建一个与加载它的 jpeg 相同的 jpeg?
我知道这个工作流程(解码-编码而不做任何事情)听起来有点愚蠢,但保留原始 jpeg 数据不是一种选择。如果可以仅使用手头的数据重新创建原始 jpeg,我很感兴趣。
问题与Reading a .JPG Image and Saving it without file size change不同,因为我没有修改图片中的任何内容。我真的很想根据手头的数据恢复原始的jpeg文件。我假设可以绕过压缩步骤(压缩工件已经在数据中),只需以 jpeg 格式写入文件。问题是,OpenCV 是否可以做到这一点。
【问题讨论】:
-
不,不是。我添加了一段,解释了原因。
-
是的,我认为它是.. 你是否改变一个值是不相关的。另一个问题的答案包含您需要的确切信息:例如:“没有一般的方法可以知道原始质量设置是什么。”这意味着编码和重新编码会改变文件。
-
我不这么认为。一个例子。如果我有 未修改 jpeg 数据,我可以将数据写回 jpeg 而无需实际的压缩步骤。更具体地说,没有下采样部分 (en.wikipedia.org/wiki/JPEG#Encoding),因为图像已经正确下采样,您可以通过仔细查看图像的一个颜色通道来看到。如果我修改图像中的任何像素,则必须再次对图像进行下采样以保持 jpeg 约束。
-
如果您有 未修改的 jpeg 数据,您不能完全绕过 opencv 并将原始字节写入文件吗?