美文网首页
图像的表示(3):眼前的画面如何变成了图像数据?

图像的表示(3):眼前的画面如何变成了图像数据?

作者: 关键帧Keyframe | 来源:发表于2022-01-06 14:19 被阅读0次

    vx 搜索『gjzkeyframe』 关注『关键帧Keyframe』来及时获得最新的音视频技术文章。

    在前面的文章中,我们提出了一个问题:从我们眼睛看见的『画面』,到我们用手机、电脑所处理的『图像数据』,其中经历了什么?从这个问题出发,我们在《图像的表示(1)》《图像的表示(2)》两篇文章中接连探讨了『图像的定义是什么』、『图像成像的原理是什么』、『怎样对图像进行数学描述』这几个问题,接下来我们继续探讨剩下的两个问题:『怎样对图像进行数字化』和『数字图像数据是什么』。

    4、怎样对图像进行数字化?

    如果要完整的探讨图像数字化的流程,细节还是很复杂的,比如下图是现代数码相机中获取数字图像流程的简单版本,即使简化后,图中所涉及的内容也不是短短几篇文章能够叙述清楚的,所以我们并不打算对这里面的环节都一一覆盖,只是想探讨一下最简单的理论环节,建立一个初步的概念即可。

    其实图像的数字化跟声音的数字化也类似,最终都是要把模拟信号转换为数字信号,这种转换包括两种处理过程:采样量化

    为了产生一幅数字图像,我们需要把连续的感知数据转换为数字形式。一幅平面图像中各个点的颜色值可以用其位置坐标 (x, y) 的函数 f(x, y) 来描述。显然,由于图像的 x、y 坐标和颜色值可能都是连续的,f(x, y) 作为二维连续函数,会有无穷多个取值。这种用连续函数表示的图像无法用计算机进行处理,也无法在各种数字系统中传输和存储,所以必须在坐标值和颜色值上将连续的模拟信号转换为离散的数字信号。对坐标值的数字化称为采样,对颜色值的数字化称为量化。

    上图是生成一幅数字图像的简化过程,右上角图中的一维函数是左上角图中沿线段 AB 的连续图像幅度值(灰度级)的曲线。随机变化是由图像噪声引起的。为了对该函数采样,我们沿线段 AB 等间隔的对函数进行采样,如左下角图中所示,每个样本的空间位置由图像底部的垂直刻度指出,样本则由函数曲线上的小方块表示。这样的一组离散位置就给出了采样函数。

    但是,样本值仍跨越了灰度值的连续范围。为了形成数字函数,灰度值也必须转换为离散量,图中显示了已经分为 8 个离散区间的灰度标尺,范围从黑到白。垂直刻度标尺赋予了 8 个灰度各自的特定值,通过对每一样本赋予 8 个离散灰度级中的一个,来量化连续灰度级。赋值多少取决于该样本与哪个垂直刻度标记更接近。

    通过采样和量化,就生成了右下角图中的数字样本。如果我们从该图像的顶部到底部逐行执行这一过程,则会产生一幅二维数字图像。

    得到的数字图像,我们怎么展示它呢?

    我们延用上面提到的 f(x, y) 函数表示法的,上图展示了 3 种数字图像的基本展示方式:

    1)第一种用两个坐标轴 x、y 决定空间位置,第三个坐标轴决定 x、y 对应的灰度值。这种展示法对于细节太多的复杂图像来说很难理解。

    2)第二种是更一般的展示方法,它显示了图像出现在显示器的情况,这里每个点的灰度与该点处 f 值成正比。比如图中如果仅由三个等间隔且归一化到 [0, 1] 区间的灰度值时,那么图像中的每个点的灰度是 0、0.5、1 中的某一个值,在显示器上就简单的把这三个值变换成黑色、灰色、白色即可。这种展示法可以让我们快速的观察图像结果。

    3)第三种则是将 f(x, y) 的数值简单地展示为一个矩阵。这种展示法打印起来麻烦,而且传达的信息也不多,但是在开发图像相关的算法需要做数值分析时就非常有用了。其中,矩阵中的每个元素我们称为像素(图像单元、图像元)

    所以,上面第二种和第三种数字图像的展示方式是最有用的,第二种允许我们快速观察结果,第三种则可用于数值处理和算法开发。

    经过数字化处理后的图像包含如下几个基本属性:

    - 图像分辨率

    - 像素深度

    1)图像分辨率

    我们经常听到的一种图像分辨率的说法是:这张图片分辨率是 1024 x 1024 像素。但图像大小本身其实并不能告诉我们全部内容,如果没有规定图像包含的空间维度信息,这种说法意义不大。

    图像空间分辨率的度量必须针对空间单位来规定才有意义,所以这里探讨的图像分辨率也称为空间分辨率,表示图像中可辨别的最小细节的度量。空间分辨率有很多方法来说明,其中最通用的是单位距离线对数单位距离点数(像素数)

    单位距离线对数可以这样来理解:假设我们用交替的黑色和白色垂直线来构造一幅图像,如果一条线宽是 0.1 mm,每单位距离(mm)就有 5 个线对(10 条黑白交替的线)。

    单位距离点数是印刷和出版业中常用的图像分辨率的度量。在美国,这一度量常用每英寸点数(dpi)来表示,比如,报纸用 75 dpi 的分辨率来印刷,书页用 2044 dpi 印刷。

    单位距离像素数常用在电子设备上。比如我们常常会听到用每英寸像素数(ppi)来衡量显示屏的成像分辨率,比如 iPhone 4 使用 326 ppi 的屏幕,iPhone 13 Pro Max 则使用 458 ppi 的屏幕。

    下图是图像使用不同空间分辨率时的展示效果:

    2)像素深度

    像素深度决定了图像每个像素的颜色级数。对于灰度图像,则决定了每个像素的灰度级数。像素深度通常是 2 的整数次幂,比如,当像素深度为 24 位时,那么每个像素的颜色可以是 16777216(224)种颜色中的一种。

    提高像素深度,每个像素能显示的颜色种类也就更多了,图像也就更细腻自然。但受到人眼分辨率的限制,像素深度不一定要特别大,人类眼睛感知的颜色种类的上限大概是 1000 万种颜色,24 位的颜色深度已经完全够用。

    下图是灰度图像使用不同灰度级数时的展示效果:

    4、数字图像数据是什么?

    我们在手机、电脑上处理的图像数据,也就是经过数字化处理后的数字图像数据

    在音视频开发中,处理最多的图像数据其实是 RGB、YCbCr 数据,在前面的文章里我们已经详细介绍过这两种颜色模型。RGB 数据主要是用于屏幕显示,YCbCr 数据则由于较好的压缩性,则主要用于图像数据处理、编码、传输。它们之间的转换,则需要根据具体使用的颜色模型标准、采样格式及存储格式来借助前文介绍过的转换矩阵来实现。这里就不再重复叙述了。

    提到数字图像数据的格式,我们还经常听到的是 PNG、JPEG、GIF 等名词,这些是图像的文件存储格式,它们是对数字图像数据进行编码后进行存储。如果要展示,则需要读取文件数据,进行解码再展示。这里我们不做过多探讨了。

    本文参考

    1)数字图像处理

    https://book.douban.com/subject/6434627/

    2)计算机图形学

    https://book.douban.com/subject/1392483/

    3)计算机视觉:算法与应用

    https://book.douban.com/subject/10465997/

    4)图像

    https://zh.wikipedia.org/wiki/%E5%9B%BE%E5%83%8F

    5)彩色图像

    https://www.jianshu.com/p/e5e2c013ba02

    6)视锥细胞

    https://zh.wikipedia.org/wiki/%E8%A7%86%E9%94%A5%E7%BB%86%E8%83%9E

    7)Color Space

    https://www.compression.ru/download/articles/color_space/ch03.pdf

    8)Gamma Correction

    https://www.cambridgeincolour.com/tutorials/gamma-correction.htm

    (通过上文的探讨,我们知道了最基本的图像数据数字化的过程,也了解了我们在音视频开发中最常接触到的数字图像数据是什么。那么关于『从我们眼睛看见的画面,到我们用手机、电脑所处理的图像数据,其中经历了什么』这个问题的探讨也可以告一段落。我们接下来会继续探讨一些『音视频编码』相关的基础知识,敬请期待)

    - 完 -

    推荐阅读

    《图像的表示(1):图像的定义和成像原理》

    《图像的表示(2):图像的数学描述》

    相关文章

      网友评论

          本文标题:图像的表示(3):眼前的画面如何变成了图像数据?

          本文链接:https://www.haomeiwen.com/subject/isxrcrtx.html