第一章 数字图像基础:像素与分辨率,色彩空间,图像直方图,图像文件格式
各位好,我是老张。做图像复原这行十几年了,今天咱们聊聊最基础的东西——数字图像到底是个啥。你可能会觉得这太简单了,但说实话,很多翻车事故都出在基础不牢上。我见过有人把分辨率搞混,结果复原出来的照片比原图还糊。嗯,咱们从根上捋一遍。
1.1 像素与分辨率
先说说像素。说白了,一张数字图像就是由一个个小方格拼起来的。每个小方格就是一个像素。你拿手机拍张照片,放大到最大,看到的那些小色块就是像素。每个像素存一个颜色值,成千上万个像素拼在一起,就成了你看到的画面。
那分辨率呢?分辨率就是图像里有多少个像素。比如1920×1080,意思就是宽有1920个像素,高有1080个像素。总像素数就是1920×1080≈207万,也就是我们常说的200万像素。
重要概念:分辨率越高,图像细节越丰富,但文件也越大。复原旧照片时,如果原图分辨率太低,强行放大只会得到马赛克。我踩过这个坑——有一次客户拿了一张30×30像素的缩略图让我复原,我折腾了半天,结果就是一堆色块。
这里有个常见的误区:很多人以为分辨率就是DPI(每英寸点数)。其实DPI是打印时的概念,跟图像本身的像素数不是一回事。一张100×100像素的图,打印成1英寸见方,DPI是100;打印成10英寸见方,DPI就变成10了。图像本身没变,只是打印尺寸变了。
我的习惯:做图像复原时,我一般先检查原图的像素数。低于300×300的图,我会直接跟客户说清楚——能修,但别指望能放大到海报尺寸。
1.2 色彩空间
色彩空间,说白了就是描述颜色的数学方法。不同的色彩空间适合不同的场景。咱们重点说三个:RGB、灰度、HSV。
1.2.1 RGB色彩空间
RGB是最常见的,显示器、手机屏幕都用它。每个像素由红(R)、绿(G)、蓝(B)三个通道组成,每个通道取值0-255。比如纯红色就是(255, 0, 0),白色是(255, 255, 255),黑色是(0, 0, 0)。
RGB的问题在于,它跟人眼感知颜色的方式不太一样。你调一个颜色的亮度,得同时改三个通道的值,很麻烦。我在项目中遇到过这种情况——想调亮一张偏暗的照片,结果颜色全跑偏了,后来改用HSV就好多了。
1.2.2 灰度图像
灰度图像每个像素只有一个值,表示亮度。0是纯黑,255是纯白,中间是各种灰。做图像复原时,很多算法都是先转成灰度再处理,因为计算量小、速度快。
但要注意,转灰度不是简单地把RGB三个值加起来除以3。人眼对绿色最敏感,对蓝色最不敏感,所以标准公式是:Gray = 0.299R + 0.587G + 0.114B。直接用平均值的做法,出来的灰度图会偏暗,我试过,效果不好。
1.2.3 HSV色彩空间
HSV把颜色分成三个分量:色调(Hue)、饱和度(Saturation)、明度(Value)。这更符合人眼感知颜色的方式。比如你想把一张照片调得更鲜艳,直接增加饱和度就行,不用动其他两个分量。
做图像复原时,HSV特别有用。比如老照片褪色了,其实就是饱和度降低了。我一般先把图像转到HSV空间,提升饱和度通道,再转回RGB,效果立竿见影。
注意:HSV和RGB之间的转换不是线性的,写代码时一定要用现成的库函数,别自己手算。我曾经手写过一次转换,结果颜色全乱套了,排查了半天才发现是边界条件没处理好。
1.3 图像直方图
直方图,说白了就是统计每个亮度值有多少个像素。横轴是亮度(0-255),纵轴是像素数量。看一张图的直方图,你就能大概知道这张图的曝光情况。
举个例子:如果直方图左边堆得很高,说明暗部像素多,图像偏暗;右边堆得高,说明亮部像素多,图像偏亮;中间堆得高,说明对比度适中。如果直方图像梳子一样有好多空隙,说明图像丢失了某些亮度层次——这在老照片里很常见。
直方图均衡化是图像复原的常用手段。就是把直方图拉平,让各个亮度级别的像素数量差不多。这样能提升对比度,让细节更清晰。但要注意,过度均衡化会让图像看起来不自然,像塑料一样。我一般只做部分均衡化,保留一些原始质感。
我的经验:拿到一张旧照片,我第一件事就是看它的直方图。如果直方图集中在中间,说明对比度低;如果集中在左边,说明曝光不足。根据直方图的情况,我就能判断该用哪种复原策略。
1.4 图像文件格式
图像文件格式,说白了就是怎么把像素数据存到硬盘里。不同的格式有不同的压缩方式和适用场景。咱们说几个常见的。
| 格式 | 压缩方式 | 特点 | 适用场景 |
|---|---|---|---|
| BMP | 无压缩 | 文件大,质量无损 | 临时存储,不推荐使用 |
| JPEG | 有损压缩 | 文件小,但会损失细节 | 网络传输、日常拍照 |
| PNG | 无损压缩 | 支持透明通道,质量好 | 图像处理、UI设计 |
| TIFF | 无损/有损 | 支持多图层,专业格式 | 印刷、专业摄影 |
做图像复原时,我强烈建议用PNG或TIFF格式。JPEG每保存一次就会损失一些细节,反复保存几次,图像就废了。我见过有人把一张老照片反复用JPEG保存了十几次,最后连人脸都看不清了。嗯,这是个血泪教训。
另外,RAW格式也值得一提。这是相机直接记录的原始数据,没有经过任何处理。如果你有RAW格式的旧照片,复原效果会好很多,因为信息量最大。但RAW格式的文件很大,而且不同相机厂商的RAW格式不通用,需要专门的软件打开。
避坑指南:千万不要用JPEG格式做中间存储。每次保存都会重新压缩,质量会越来越差。我曾经为了省空间,用JPEG保存了处理过程中的中间结果,结果最后输出时发现图像质量已经惨不忍睹了。
知识体系总览
下面这张图把本章的核心知识点串起来了。你可以看到,像素是基础,分辨率决定了图像大小,色彩空间决定了颜色表达方式,直方图帮我们分析图像质量,文件格式决定了存储方式。这些概念环环相扣,缺一不可。
好了,第一章的内容就到这儿。像素、分辨率、色彩空间、直方图、文件格式——这些概念你搞清楚了,后面的内容就好办了。记住一句话:基础不牢,地动山摇。做图像复原,先把这些基本功练扎实,比什么都强。
公众号:蓝海资料掘金营,微信deep3321