未处理的RAW文件是什么样的?


84

我知道人们会使用Lightroom或Darktable之类的精美软件对RAW文件进行后处理。但是,如果我不这样做怎么办?RAW,文件看起来像什么?


21
矩阵。它看起来像矩阵。
Hueco

2
有关; RAW文件每个像素存储3种颜色,或仅一种?为什么是红色,绿色和蓝色光的三原色?这就解释了数码相机传感器如何最小化眼睛或大脑感知颜色的方式,这种色彩在某种意义上实际上并不像我们通常认为的那样实际存在。
Michael C

3
@Hueco,也许是拜耳矩阵。
标记

我已经讨论了如何最好地解决这个问题,成为一个典型的聊天问题。让我们在此继续,以便无论最终决定是什么,我们都不会在意见中打扰。
AJ Henderson

1
它所做的不是像就是“直外的相机原始图像”,很多人似乎认为自己有当他们打开原处理应用程序中的原始图像文件。这就是这个问题的基础。
Michael C

Answers:


183

有一个名为dcraw的工具,可以读取各种RAW文件类型并从中提取像素数据-实际上,它是许多开源甚至商业RAW转换软件最底层的原始代码。

我有一个来自相机的RAW文件,并且已在dcraw模式下使用它,该模式告诉它使用文件中未缩放的文字16位值来创建图像。我使用感知伽马将其转换为8位JPEG以进行共享(并缩小以进行上传)。看起来像这样:

dcraw -E -4

显然,结果是非常黑暗的,但如果你点击展开,如果你的显示器是体面的,你可以看到一些暗示的东西

这是从同一RAW文件渲染的相机外颜色JPEG:

机外JPEG

(照片来源:顺便说一下,我的女儿正在使用我的相机。)

毕竟不是完全黑暗。深入的问题可以最好地覆盖确切隐藏所有数据的位置的细节,但是总而言之,我们需要一条曲线,可以在典型屏幕上的8位JPEG可用的暗度和亮度范围内扩展数据。 。

幸运的是,dcraw程序具有另一种模式,可以转换为更“有用”但仍未处理的图像。这将调整最暗的黑色和最亮的白色的级别,并适当地重新缩放数据。它还可以自动设置白平衡,也可以从RAW文件中记录的相机设置中设置白平衡,但是在这种情况下,我告诉我们要这样做,因为我们想检查最少的处理。

传感器上的感光位置与输出中的像素之间仍然存在一一对应的关系(尽管我再次将其缩小以进行上传)。看起来像这样:

dcraw -d -r 1 1 1 1

现在,这显然可以更好地识别为图像-但如果放大此图像(在这里,每个像素实际上被放大了10倍),我们看到的全是...点:

10倍缩放和裁剪

那是因为传感器被彩色滤光片阵列所覆盖-微小的彩色滤光片大小与每个photosite大小相同。因为我的相机是Fujifilm相机,所以使用的是Fujifilm称为“ X-Trans”的图案,如下所示:

10×xtrans

有一些关于特定模式的细节很有趣,但是总的来说并不是很重要。如今,大多数相机都使用拜耳模式(每2×2而不是6×6重复一次)。两种图案都比红色或蓝色图案具有更多的绿色滤镜部位。人眼对该范围内的光更敏感,因此使用更多的像素可以得到更多的细节,同时噪音更少。

在上面的示例中,中心部分是一片天空,这是青色的阴影-在RGB中,它包含大量的蓝色和绿色而没有太多的红色。因此,黑点是红色滤镜的位置-它们很暗,因为该区域没有穿过该滤镜的波长的光太多。右上角的对角带是深绿色的叶子,因此虽然一切都有些暗,但您可以看到绿色(该传感器模式的2×2较大的块)在该区域相对最亮。

因此,无论如何,这是相机外JPEG的1:1(当您单击以获取完整版本时,图像中的一个像素将是屏幕上的一个像素)部分:

1:1观看相机外图像的裁剪

...这是上面快速灰度转换中的同一区域。您可以从X-Trans模式中看到点画:

1:1的dcraw -d -r 1 1 1 1版本

实际上,我们可以对像素进行着色,以便将与阵列中的绿色相对应的像素映射到绿色级别,而不是灰色,红色到红色以及蓝色到蓝色。这给了我们:

1:1与xtrans着色

...或者,对于完整图像:

dcraw -d -r 1 1 1 1的完整图像,带有xtrans着色

绿色投射非常明显,这并不奇怪,因为绿色像素比红色或蓝色多2½倍。每个3×3块具有两个红色像素,两个蓝色像素和五个绿色像素。为了对付这种情况,我提出了一个非常简单的缩放程序,其每匝那些3×3块的成单个像素。在该像素中,绿色通道是五个绿色像素的平均值,而红色和蓝色通道是相应的两个红色和蓝色像素的平均值。这给了我们:

xtrans彩色的,天真的块去马赛克

...实际上还不错。白平衡处于关闭状态,但是由于我有意决定不对此进行调整,因此这不足为奇。在成像程序中点击“自动白平衡”可以弥补这一点(首先让dcraw设置该值):

xtrans彩色,天真的块去马赛克+自动级别

与相机和RAW处理程序中使用的更复杂的算法相比,细节并不是很好,但是很明显,基础知识已经存在。更好的方法是通过对每个像素周围的不同值进行加权来创建全彩色图像,而不是按照较大的块进行操作。由于照片中的颜色通常会逐渐变化,因此效果很好,并且可以在不减小像素尺寸的情况下生成全色图像。还有一些巧妙的技巧可以减少边缘伪像,噪声和其他问题。此过程称为“去马赛克”,因为彩色滤光片的图案看起来像瓷砖马赛克。

我猜想这个视图(我实际上没有做出任何决定,并且程序没有自动执行任何智能操作)可以被定义为RAW文件的“标准默认外观”,从而结束了许多互联网争论。但是,没有这样的标准-没有这种特殊的“天真”解释是特殊的规则。

而且,这不是唯一可能的起点。所有现实世界中的RAW处理程序都有自己的基本默认状态概念,这些默认状态可应用于加载时的新RAW文件。他们必须做一些事情(否则,我们将在这篇文章的开头有那么黑暗,无用的事情),通常他们做的事情比我简单的手动转换要聪明,这是有道理的,因为无论如何它都会带来更好的结果。


4
好看的照片。很好的答案。
Marc.2377


7

我知道mattdm已经很好地回答了这个问题,但是我只是认为您可能会觉得这篇文章有趣:

数据遗传学:数码相机的工作原理

如果链接断开,以下是摘要:

人眼对绿色波长区域中的颜色最敏感(与此同时,我们的太阳在绿色区域中发出的光最强烈)。

摄像头(电荷耦合器件(CCD)或互补金属氧化物半导体(CMOS))仅对光强度敏感,对颜色不敏感。

光学滤光片用于滤除不同波长的光。例如,绿色的通过滤镜只会让绿色的光通过。

数码相机中使用的滤光片是各个像素传感器的大小,并排列成网格以匹配传感器阵列。使用红色,绿色和蓝色(类似于我们的圆锥形细胞)滤镜。但是,由于我们的眼睛对绿色更敏感,所以Bayer阵列滤镜对每个红色和蓝色像素都有2个绿色像素滤镜。拜耳阵列具有形成棋盘状图案的绿色滤光片,而红色和蓝色滤光片交替排列。

回到您的原始问题:未经处理的RAW文件是什么样的?

它看起来像原始图像的黑色白色格子格。

用于RAW文件后处理的精美软件首先应用了拜耳过滤器。此后看起来更像是实际图像,并且颜色的强度和位置正确。但是,仍然存在来自Bayer滤镜的RGB网格伪影,因为每个像素只是一种颜色。

有多种方法可以使颜色编码的RAW文件平滑。但是,平滑像素类似于模糊,因此过多的平滑可能是一件坏事。

这里简要介绍了一些去马赛克方法:

最近邻居:将像素(单色)的值应用于其其他有色邻居,并进行颜色合并。在此过程中,不会创建“新”颜色,而只会创建摄像机传感器最初感知到的颜色。

线性插值:例如,对两个相邻的蓝色值求平均值,并将该平均蓝色值应用于相邻的蓝色像素之间的绿色像素。这会使模糊的边缘模糊。

二次和三次插值:类似于线性插值,中间颜色的高阶近似值。他们使用更多的数据点来生成更好的拟合。线性只看两个,二次看三个,三次看四个,以产生介于中间的颜色。

Catmull-Rom样条曲线:与三次方相似,但考虑到每个点的渐变以生成中间颜色。

半余弦:用作插值方法的示例,它在每对相似的颜色之间创建半余弦,并且在它们之间具有平滑的弯曲曲线。但是,如本文所述,由于颜色的排列,它对拜耳阵列没有任何优势。它等效于线性插值,但计算成本较高。

高端后处理软件具有更好的去马赛克方法和巧妙的算法。例如,当组合颜色通道时,它们可以识别出锐利的边缘或高对比度变化并保持其锐度。


-6

我认为很多人都认为原始文件只是从相机传感器直接获得的像素值数组。在某些情况下确实是这样,您必须提供有关传感器的一些信息才能让软件解释图像。但是,许多消费类相机通常提供的“原始文件”实际上或多或少地符合TIFF文件规范(在某些情况下,颜色可能不正确)。您可以尝试将文件扩展名更改为“ .tif”,然后查看打开文件时会发生什么。我想你们中的一些人会拍出好照片,但不是所有人,因为不同品牌的相机在解决这个问题上有差异。

TIFF文件而不是“真实的原始文件”是一个很好的解决方案。TIFF文件的每种颜色可以具有16位。对于我所知道的所有相机而言,这就足够了。

埃德:我不知道为什么这个答案被否决了。答案本质上是正确的(保留相机制造商不必使用TIFF结构的事实,但其中很多都可以使用)。

关于直接从传感器出来的像素阵列部分,期望这样的结果并不荒谬。因为这就是消费相机市场之外的许多传感器的工作方式。在这些情况下,您必须提供一个描述传感器的单独文件。

顺便说一句,使用“ RAW”一词是因为它应表示我们获得了未处理的传感器数据。但是,相机制造商使用结构化格式而不是真实的原始文件是合理的。这样,摄影师不必知道确切的传感器数据。


2
一些文件恢复应用程序,可将.cr2文件“恢复”为TIFF。这些文件将无法使用任何可与TIFF一起使用的应用程序打开。将文件扩展名改回.cr2,使它们可以完美地使用.cr2文件。
Michael C

5
这并不是说RAW文件实际上并不经常使用TIFF格式的容器-绝对正确。只是您所看到的可能不是我要查找的“ RAW”数据。
mattdm

2
好的,澄清一下,该文件确实使用了TIFF文件格式的结构。但是由于它的功能与TIFF规范所说的不完全相同,因此它不是严格的TIFF文件。但关键是可以使用TIFF库读取文件。不必为了阅读该文件而从头开始制作所有内容。
Ulf Tennfors

5
没有任何意义的人会期望RAW文件直接来自传感器的数据而没有诸如时间,相机信息等任何类型的元数据。类似TIFF的格式可用于构造数据的事实并不重要,这也没有减少这样的概念原理,即数据无需经过后处理即可“直接”离开传感器。
whatsisname

3
TIFF是一个容器,实际上不是图像格式。您可以将数据存储在TIFF中,并且仍然是原始传感器数据,而不是没有相机特定知识的任何人都可以使用的图像。
部份
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.