您的位置: 游戏资讯 > 手游攻略

什么是图像处理的基础,图像是啥意思

来源:[db:H1] 浏览:0 2024-06-24 13:08:00

本文是图像处理101 教程系列的一部分。

图像处理和计算机视觉是计算机科学的热点趋势,由于其广泛的应用和乐观的发展前景,将继续呈现强劲的发展势头。在本教程系列的第一篇文章中,我们将了解图像是什么、它们如何存储,并解释图像处理的基础知识。

数字图像可以在计算机上显示和处理,根据其特点可以分为两大类:位图和矢量图像。

位图基于像素模式,通常由数字数组表示。 BMP、PNG、JPG 和GIF 都是位图。

2460e9d5e86343c498e0b1f057b0c503~noop.image?_iz=58558&from=article.pc_detail&lk3s=953192f4&x-expires=1719810488&x-signature=TGuKXqircUYvqjiehankP%2F1ECIU%3D

矢量图像可以无限缩放并且没有像素,因为它们使用数学公式来绘制直线和曲线。大小为MN 的位图图像由MN 有限元组成。每个元素都有特定的位置和幅度,并表示有关该位置的信息,例如灰度或颜色。这些元素称为图像元素或像素。

色彩空间

根据每个像素所代表的信息,图像可以分为二值图像、灰度图像、RGB图像、索引图像等。

1. 二值图像

在二值图像中,像素值用0或1表示。通常0 表示黑色,1 表示白色。

2. 灰度图像

灰度图像在二值图像中添加白色和黑色之间的颜色深度,形成灰度图像。这些图像通常显示为从最暗的黑色到最亮的白色的灰色阴影,每种颜色的深度称为灰度,通常用L 表示。在灰度图像中,像素可以具有从0到L-1的整数值。

3.RGB图像

RGB 或彩色图像需要一组数字来表示每个像素的信息。因此需要一个三维矩阵来表示图像。自然界中几乎所有的颜色都是由红(R)、绿(G)、蓝(B)三种颜色组成的。因此,RGB图像中的每个像素都可以用红/绿/蓝阵列来表示。

4. 索引图像

索引图像由颜色图矩阵组成,该矩阵将数组中的像素值直接映射到颜色图值。使用相应的值确定图像中每个像素的颜色。下面将更详细地讨论这个问题。

图像如何存储在内存中

x86 硬件没有用于访问多维数组元素的寻址模式。当图像加载到存储中时,多维对象将转换为一维数组。通常,使用行优先或列优先排序。

行主要排序

C/C++ 和Python 使用行优先排序。它从第一行开始,然后连接到第二行及其末尾,然后连接到第三行。这意味着在行优先布局中,最后一个索引变化最快。对于矩阵,最后一个索引是列。

对于灰度图像,可以使用矩阵来表示每个像素的灰度级。以4*4图像为例。

11cb89a3e0a5457ba500b3177d911f88~noop.image?_iz=58558&from=article.pc_detail&lk3s=953192f4&x-expires=1719810488&x-signature=OvjA94Ymm%2Fyfn%2BMT%2BN%2FBGpdR96Q%3D内存

c8f2266da55c4616997b464e6bf19ac4~noop.image?_iz=58558&from=article.pc_detail&lk3s=953192f4&x-expires=1719810488&x-signature=fCHEwici15WvPqEy1V3fbyg3j0Q%3D

对于彩色图像,需要多维数组来存储图像信息。

b869393a645b4be1b20de6dd9e0114de~noop.image?_iz=58558&from=article.pc_detail&lk3s=953192f4&x-expires=1719810488&x-signature=IoDpYvvokjySnpzl%2Ft3Zf7%2BaUiA%3D

列主要排序

在多维数组的行优先布局中,第一个索引变化最快。这是一个例子。

图像A 有6 个像素。

d85bfc34bcd94e6aa4dfef9785533da1~noop.image?_iz=58558&from=article.pc_detail&lk3s=953192f4&x-expires=1719810488&x-signature=nqPWWDsxuczcccTRi%2Bdoh3AKKDo%3D 使用行优先排序,连续的内存地址分配如下:

2e4ea03d188a4e8881adb2f70095e8bd~noop.image?_iz=58558&from=article.pc_detail&lk3s=953192f4&x-expires=1719810488&x-signature=4OAx%2BBKMWSqagt%2BxIu6uI5NHAuc%3D 当使用列优先排序时,连续的内存地址分配如下:

ba21592e62044a28989258c213ae8a83~noop.image?_iz=58558&from=article.pc_detail&lk3s=953192f4&x-expires=1719810488&x-signature=MWDBKEsQ%2Fh0lwf10rXAsCFB69Bw%3D

图像如何存储在文件中

真彩色(24 位)

24 位图像通常使用8 位表示R、G 和B。与灰度类似,对于三基色中的每一种,L 电平可用于指示存在多少该颜色分量。例如,对于256 级红色,0 表示无红色,255 表示100% 红色。同样,绿色和蓝色也可以分为256个级别。每种原色可以用8 位二进制数据表示,因此三种原色总共需要24 位。

未压缩的原始BMP 文件是使用RGB 标准存储的RGB 图像。

索引颜色

对于高度和宽度为200 像素、16 种颜色的彩色图像,每个像素由三个分量表示:RGB。因此,每个像素用3个字节表示,整个图像为2002003=120KB。由于彩色图像只有16种颜色,因此可以使用颜色表(16x3的二维数组)来存储这16种颜色的RGB值。下面对此进行更详细的解释。数组中的每个元素代表一种颜色,并按其在数组中的位置进行索引。图像像素不包含其颜色的完整规范,仅包含表中的索引。例如,如果颜色表中的第三个元素是0xAA1111,则所有颜色为0xAA1111的像素都可以用“2”表示(颜色表索引下标从0开始)。这种方法每个像素只需要4位(0.5字节),因此整个图像可以存储2002000.5=20 KB。上面的颜色表就是调色板,也称为查找表(LUT)。

GIF 是最流行的图像文件格式,支持索引颜色模式。

fd3f58c3773647f9a2ab66fd1b2b1c63~noop.image?_iz=58558&from=article.pc_detail&lk3s=953192f4&x-expires=1719810488&x-signature=rYqY3JmrXj6iLRhl3Ur20piayOY%3D

还有很多其他的图像格式和存储方式,这里不再赘述。下次我会介绍色彩模型相关的内容。

敬请期待~

版权声明:本文转载于网络,版权归作者所有。如有侵权,请联系本站编辑删除。