如何使用 Linux 命令将 JPEG 图像转换为 RAW 图像?

lol*_*tux 5 linux bash shell command-line imagemagick

我有一系列使用佳能 Powershot拍摄的 JPEG 图像到 JPEG。如何将它们转换/转换为 RAW 图像?

不是使用图形工具,而是来自命令行!

Has*_*tur 57

原始 RAW 图像无法恢复。

选择 JPEG 而不是 RAW 会通过牺牲质量来节省空间。
此操作是不可逆的且有损的。
简单地说,这意味着你不能回去。

遗憾的是,您下次拍摄前只能选择 RAW 格式而不是 JPEG。

注意:从技术上讲,您可以找到一种将当前 jpg 图像转换为 RAW 格式的方法,但是如果您直接以 RAW 格式拍摄和保存,它可能与您可能拥有的 RAW 图像不同。


在您可能阅读的佳能支持中搜索

相机可以拍摄 JPEG 和 RAW 格式的图像。

JPEG
图像 在相机中处理以获得最佳图像质量并压缩以减小文件大小。但是,压缩过程是不可逆的,图像无法恢复到原始、未处理的状态。图像处理也可能造成图像质量的一些损失。

RAW “原始”(未处理)数据,记录时基本上不会因相机的图像处理而损失图像质量。此状态下的数据无法用于在计算机上查看或打印。您必须首先在相机上处理图像或使用软件 (Digital Photo Professional) 将图像转换为 JPEG 或 TIFF 文件。可以在图像质量损失最小的情况下调整图像。

  • 请注意,目前没有单一的标准“RAW 格式”。 (2认同)
  • 我总是对反对者感到好奇......请发表评论并让我(我们)知道您不同意什么,知道它可能会有用。 (2认同)

har*_*ymc 30

“原始”不是一个定义明确的格式。检查 Wikipedia Raw 图像格式,我统计了 43 种原始格式,每种格式都取决于相机型号。

最好的图像包之一是 ImageMagick,可作为 Linux 上的包或下载使用,它支持几种 RAW 格式。使用其命令magickconvert

但是,结果的质量会很差。JPEG 是经过处理的图像数据,而 RAW 则不是。通常,RAW 文件每像素具有 12-14 位,这意味着最多 16384 个值。JPEG 每个 RGB 通道只能有 256 个亮度值。这意味着 JPEG 包含的数据比相应的 RAW 文件少得多。所以没有什么好的方法可以将 JPEG 转换为 RAW。

  • 绝对地。你甚至不应该尝试这个。你不会得到你认为可能得到的。如果您还不相信,请参阅 https://photo.stackexchange.com/questions/73475/how-to-convert-jpeg-to-raw-in-photoshop-or-similar 了解更多转换的原因和可能性。将原件另存为 jpg 无法找回丢失的信息。请记住在再次使用之前将相机切换到 RAW。 (22认同)
  • 嗨,抱歉,Imagemagick 程序和库只支持 **R**eding Canon CRW 和 CR2 格式......(使用 [命令行在这个答案中检查](https://superuser.com/a/ 1620628/257269)) 所以你可以从 CRW “转换”到 JPEG,但不能用其他方式。至少不是以简单的方式。 (3认同)

Has*_*tur 10

尝试将 JPEG 转换为 RAW 格式的困难和机会。

并非总是可以将 JPEG 文件转换为原始 RAW 文件。
注意:我说原始或特定的 RAW 格式,因为它不是标准:RAW 格式是服务格式,与另一种不同,制造商使用它来快速将 CCD 的内容保存到缓冲区中,以防万一在存储设备上.

限制。您或许可以将其转换为有效的 RAW 格式,但这并不意味着新 RAW 文件中存储的各个值与您直接以 RAW 格式保存照片时可能具有的值相同。

机会。并不是说即使您可以将JPEG图像转换为RAW格式并从它开始进行处理,最终结果也会比直接从已有的JPEG开始更好。事实上,您将应用一个过滤器(算法),将一种格式转换为另一种格式,并可以引入进一步的更改。

困难。尽管如此,一旦您了解了特定的 RAW 格式,您可能会找到一种将图像正式 convert转换为 RAW 格式的方法。这将涉及到非常重要的编程工作,从逆变换的建模开始,最后是使用算法的首选语言进行编码。

现有程序。Linux(或其他操作系统)下Imagemagick包中的convert程序不能将任何格式直接转换为佳能 RAW 格式,它只能读取R)它们......所以它可以做与 OP 正在搜索的相反的事情: 将 RAW 转换为任何格式。

convert -list format | grep Canon
      CR2  DNG       r--   Canon Digital Camera Raw Image Format
      CRW  DNG       r--   Canon Digital Camera Raw Image Format
Run Code Online (Sandbox Code Playgroud)

但 Imagemagick 甚至是一种脚本/编程语言。一旦您可以访问单个像素值,您就可以根据需要保存它们……对其进行编程。但是您需要知道所需格式的规格。

此外,由于它是一个开源程序,您可以在代码中看到用于从 RAW转换为任何内容的例程,并查看您是否能够反转它们。

关于 RAW 到 JPEG 转换的不可逆性。

发生这种情况的原因有很多。他们之中:

  • 有些格式是有损的,JPEG 通常是其中之一。您以伪影和对单个像素的原始值的一般修改为代价来节省空间。

  • 在经典的 JPEG 格式中,颜色只有 8 位(这意味着 256 种色调)。在 CCD 传感器中,计数器通常为 12 或 14 位(即 4096 和 16384 色阶)。
    如果您将图像视为直方图,您将在 JPEG 图像的单个 bin(列)中取平均值,分别包含在 12 位和 14 位计数器中的 16 个和 64 个 bin 中的值。如何从平均值中恢复单个 bin 值?

  • 即使您的 JPEG 是最近的 12-14-16 位格式 ( JPEG_XT ),您也不知道相机内部用于此转换的算法。
    (简单来说,传感器可以具有非线性效率曲线。制造商可以通过将数字从 RAW 格式转换为JPEG、TIFF格式的线性阴影级别来考虑这一点。)

  • CCD 的几何形状不同于图像的几何形状。粗略地说,在图像中,相对于完全相同的几何正方形,我们有一个具有 3 或 4 个值的像素。所有的正方形都是相邻的。

    相反,在 CCD 中,我们具有对不同波长敏感的几何分离传感器,再次粗略地表示 R、G、B 值。这些传感器可能有也可能没有相同的表面,当然也有不同的效率,除其他外,根据每秒计数的数量而变化。

    这些 RGB 传感器序列如何对齐和彼此间隔开取决于 CCD 的设计。你可以在互联网上看到一些颜色过滤器阵列的例子。

    在此处输入图片说明 图片来自维基百科

    在此处输入图片说明 图片来自Ephotozine

    例如,红色传感器的计数值如何转换为像素 R 的图像值,取决于它们的几何位置和所选择的算法,该算法可能会也可能不会考虑附近传感器的值,或者那些对与其他波长相同的敏感。

    所有这些事情都很难逆转。