图像的基础知识
在计算机视觉处理等多个领域,总会涉及到图像这个字眼,对于初学者,或许只能理解图像为眼中所见吧!若再深入地谈到 “ RGB 三原色,通道,图像模式 ” 等,或许原先就是浆糊的脑袋,现在是越搅越糊了吧(嘿嘿,博主在这皮一下)。于是,博主特地将和图像有关的知识点整理下来,帮助大家理解。记得关注点赞哦!!!

本文目录:
一、图像和图形
进入正题前,博主先悄悄问你们一个问题。“图像是什么?图形又是什么?两者是否等同?”,面对这样的灵魂拷问,是不是感觉迷失了自我。“我是谁?我从何处来?到何处去?”这哲学的问题咱们不谈,我们只谈图!

我们知道图有矢量图和位图之分,那两者的区别又是什么?我们先来区分一下。
1.矢量图
概念: 由数学公式表达的线条(矢量)构成。
特点: 放大缩小不失真,占用空间小。
缺点: 色彩不丰富,无法表现逼真的实物。
来源: 只能由计算机工具合成,如Illustrator等。
应用: 主要应用于标志设计、图案设计、文字设计、版式设计等。
2.位图
概念: 由像素点组合而成。
特点: 色彩丰富,可表现出色彩丰富的图像。
缺点: 放大缩小易失真,占用空间大。
来源: 由照相机、扫描机、摄像机等输入设备捕捉生活中的画面而产生。

上图便是矢量图和位图最大的区别,现在有了矢量图和位图的概念,便可清晰地知道图像和图形的区别,即图像是位图,而图形是矢量图。如果你对图像的概念还模糊,那说明读者对像素一无所知,下面介绍一下像素的概念。
二、像素
像素是指 “ 由图像的小方格组成的,这些小方格都有一个明确的位置和被分配的色彩数值,小方格颜色和位置就决定该图像所呈现出来的样子。”
百度百科给出的解释,好官方,好正式呀!看完还是一脸懵,怎么办?通俗地说,像素是组成图像的基本单位,每个像素点都有一定的属性,记录了图像某个位置的信息。如果小伙伴们小时候有偷偷攒过钱买过拼图,那就好理解了。

没有错,就是这个拼图,拼图中的每个单片都是图像的一部分,我们将它们放在一定的位置,把它们拼凑起来,就形成了我们眼中的图像——狮子。那么我们可以把这些小单片看作像素,小单片是拼图的最小组成单元,将这些单片拼接起来就是一幅图像,计算机中的图像也是如此,将多个像素按一定的方式组合起来就形成了我们眼中的图像。
试想一下,当这些拼图单片数量更多一点,会怎样?

哇!博主在这里都忍不住地要感慨下中国的艺术,用几百张拼图单片便拼出了清明上河图的某一场景,是不是逼真了好多。那当一张拼图由几千张小单片拼凑而来,在 “人眼的欺骗 ” 下,是不是就显得更真实了?答案是肯定的。
现在回到像素这个问题,我们先看张图。

这张便是名副其实的像素图了,你所看到的方格便是像素点,一张图像由好多像素点组成,每个像素点都有一定的色彩,一定的亮度,将这些像素点放在特定位置便组成了我们的图像——蜘蛛侠!但。。。这样的图像也太low了吧,怎么能和我心目中的蜘蛛侠相比啊!

这张怎样?哈哈哈,没错!它便是由像素组成的图像,用PS将其局部放大,便看到了右下角的小图,明显是由很多个密密麻麻的像素点组成的。这张高清图像由1024000个像素点组成,是不是被吓了一跳呀!相比于前面一张图,这张图的像素点多了很多,也怪不得这张图像更清晰,品质更高。这也暗示着,像素点的个数决定了图像的品质。
说到图像的品质,是不是一个特别熟悉的词浮现出来——分辨率。生活中,我们用分贝来度量声音的大小,用度数来度量温度的高低,在图像中,则用分辨率来度量图像的质量。
三、图像的分辨率
概念: 单位长度内包含像素点的数量。
单位: 像素/英寸,ppi (pixels per inch)
例子:
1*1英寸的图像,其分辨率为30ppi,则该图像共有900个像素点。
说明: 分辨率越高,包含的像素点就越多,图像就越清晰,但占用的存储空间就越大。
谈到存储空间,那么很多读者肯定很好奇计算机是怎么存储图像的(其实博主也很好奇,好想把主机拆开,看看里面有没有“相册”)。
四、图像的存储
众所周知,计算机只能识别0,1两个数字,也只能存储这两个数字,那么只要将一张图像按照一定规则以0,1来表示,不就可以存储了么?那么我们规定,0代表颜色黑,1代表颜色白。但这意味着每个像素只能取黑或白两种颜色,那会是怎样的图像呢?

上图所示图像在计算机中便是以0,1来存储,由于每个像素点的值不是0便是1,所以上述图像在计算机中是一个二维数组(只是局部):

原来图像在计算机中的存储原理这么简单啊!!!可。。。这密密麻麻的小点让密集恐惧症的读者如何是好啊。要是每个像素点之间的颜色变化有点过渡就好了。
啥也别说了,上图。

从这张图我们可以看出,最左边为黑色,最右边为白色,我们可以很明显地看出黑色到白色明显存在一个渐变,但由于前面只有两个数字来表示颜色值,0表示纯黑,1表示纯白,中间过渡的颜色都没有值来表示,这样使得图像颜色跳转很突兀。那如果00表示黑色,11表示白色,01和10表示期间颜色值,颜色变化是不是就不那么突兀了?如果再细分一点,将黑色和白色之间的颜色划分更多的等级,那不就有一个渐变的过程了么?(如下图)

我们将最暗的色(黑)和最亮的色(白)之间划分成256个等级,每个等级用一个数值表示,那么我们就可以表示出黑白之间所有的颜色了,这样就不存在“黑白突变”的图像,而是一种渐变的图像(下图所示),这也就是我们常说的灰度图。

这样的图像依旧是数组存储,只不过每个像素点的颜色值为 0~255 间的任一值,而不是单纯的 0,1 。下图为灰度图的存储方式:

通过以上分析,我们可以将黑白图像或灰度图像中每个像素的颜色值以数字的形式存放在二维数组里,计算机通过存储二维数组来存储图像,可问题来了,生活中的画面是多姿多彩的,并非是一个灰色世界啊,那对于彩色图像,计算机又是怎么存储的呢?
在回答上述问题前,博主先小小科普一下,牛顿他老人家发现一束白光通过三棱镜可以分解为赤、橙、黄、绿、青、蓝、紫7种不同的颜色,后来他又继续分解,发现红绿蓝三种颜色怎么分解也没法分解成其它颜色,加之我们人的视网膜的结构(这里就不多说了。。。),总之我们称红绿蓝为光的三原色,用RGB(R=Red,G=Green,B=Blue)来表示。这也就意味着自然界中人眼的可见光均可使用RGB三原色叠加形成。
既然可以叠加,那么我们就可以将三种原色任意混合,进而可以形成7种颜色(混合机制如下图所示)。

7种?生活中就7种色彩么?这远远不够,我们知道最暗色(黑)和最亮色(白)之间有渐变,因此我们可以将其分成256种颜色,难道每个原色之间就没有渐变了么?难道我们不可以将其细分么?这当然存在,也可以细分,和前面一样,各个原色都存在一个渐变。

按照上面方法,依旧将每个原色(红、绿、蓝)中最暗部分用0表示,最亮部分用255表示,那么在每一种原色之间都会有254个等级,更专业一点的说法叫色阶(如果不明白色阶的概念,)。那么每种原色都会有256个色阶,那么将其任意混合,便可产生1670多万种颜色,这就足够用来表示我们丰富多彩的世界了。(欧耶!)
三原色的混合机制如上面所示,但这并不很明显,因为他只能表示纯红、纯绿和纯蓝三种颜色混合,却不能表示其它任意阶的三原色混合。
下面将其“立体化”,三个坐标轴分别表示红、绿、蓝,每个坐标轴的刻度为1,范围为0~255,那么空间每个点的坐标值便是三原色的混合程度。什么???我数学不好,你让我去想象???这里给出了示意图(忽视坐标轴上的值,博主偷个懒,盗个图),对于任一点,比如(255,0,0),这就意味着该像素的颜色由色阶值为255的红原色(纯红)和色阶值为0的绿色、蓝色(0便代表没有该颜色成分)混合而成,所以(255,0,0)代表纯红。

如果你还是不能理解,博主实际操作给你看!!!

对于上图,读者只需关注注释部分,通过该实例,想必读者更好理解彩色图像的存储方式。简单地说,元组第一位代表红色的色阶值,第二位和第三位则是绿色和蓝色的参与混合的色阶值。
色阶
“ 色阶是表示图像亮度强弱的指数标准,也就是我们说的色彩指数,在数字图像处理教程中,指的是灰度分辨率(又称为灰度级分辨率或者幅度分辨率)。图像的色彩丰满度和精细度是由色阶决定的。色阶指亮度,和颜色无关,但最亮的只有白色,最不亮的只有黑色。”官方解释依旧是如此晦涩难懂。博主简明地说一下吧!
色,我们可以理解为颜色(这个不需要解释了吧,嘿嘿),而阶,不太好理解,我们熟悉的是台阶,而台指的是像舞台这种平而高的建筑物,而台阶正是到达该建筑物上面的物体,但该物体越来越高。现实中的台阶我们也见过,一级一级,一阶一阶(如图所示),故而色阶可以理解为由颜色最暗处(地面)到最亮处(舞台)之间的“阶梯”,一阶比一阶高,每一阶都有一个数值对应,比如色阶255,色阶10。

网上不乏很多段子,比如《xxx从入门到入土》,那么入门指的是啥???在PS界,盛传这么一句话,懂得使用蒙版和通道,才算初级入门。在图像中,有这么一个重要且难懂更难解释的概念——通道。下面博主解释一下。
五、图像通道
这是现实的通道,也是你以为的通道:

但图像中的通道是啥样子的呢?

这是博主用PS打开了一张照片并查看了其【通道】,我们将其放大看一下。

竟然惊奇地发现点开每个通道,竟然也是一幅完整的图像,唯一不同的便是颜色亮暗程度不同。加之PS中每个通道都有自己的名字——红绿蓝,光的三原色也是红绿蓝,怎么有种说不出来的巧合啊。博主想说的是这并不是巧合。我们可以理解通道记录的是每个颜色的数值,r 通道便记录了该位置对应像素点的红原色色阶的值,g 通道和 b 通道则是记录了该位置对应像素点的绿原色和蓝原色的色阶值。由于每个通道都包含每个像素点的部分颜色值( r 通道则包含了该张图像中红原色的值),这样导致的结果是每个通道上的每个像素点只有一个值,如果我们分离出通道,这样每个通道在计算机中的形式便是一个二维数组,那么根据灰度图的表示(二维数组表示灰度图),各个通道单独呈现的也就自然是灰度图了。
如果你还是不能理解通道的含义,在此举个不恰当的例子。
以现实中的通道为例,我们理解为道路(这个应该很好理解的啦),对于乡间小路,坑坑洼洼,只是由一些石块铺成,那么该道路就是单通道(可以理解为是r通道或者g通道或者b通道),而对于城市上的道路,先铺上石块(r通道),再铺垫上沙土(g通道),最后再铺上沥青(b通道),这样就构成了我们城市中美丽的道路了(彩色的图像)。
如果你还不能理解,先看一下下面的动图:

喜欢刷抖音的读者肯定刷到过这种类型的吧,两张照片(有一定透明度)合并成一张,竟然形成了一张新的照片,那么我们可以理解通道为三张图像(每张图像只含有一种原色),那么对于彩色图像,就是由r,g,b三个通道合并而成。
对于上面将通道分离成最后每个通道所呈现出的图像却依旧是灰度图,这似乎不太好理解,说好的通道是携带像素点的颜色信息,那么怎么没看到颜色呢?别急,我们先来看个图:

上面三张图像分别是R,G,B三通道的图像,那么将它们重合会发生啥呢???
从上面的动图中可以清晰地看出一张彩色图像可以分解成3个通道的图像。
既然彩色图像有三个通道组成,每个通道都是一个灰度图,也就是一个二维数组,那么将三通道叠加起来就形成了彩色图像,因而彩色图像在计算机中是以三维数组来存储的。什么???又来搞想象?都说了我数学不好。既然这样,那我们欣赏一下下面这张图吧!

说了这么多,现在是不是说不出通道是啥,却依旧知道通道是啥了?哈哈哈。
六、位深度
“位深度是指在记录数字图像的颜色时,计算机实际上是用每个像素需要的位深度来表示的 ”。通俗地说,位深度就是指图像上的一个像素点需要多少位(bit)来表示。下面举些常见例子。



七 、图像的模式
“ 把色彩分解成部分颜色组件,对颜色组件不同的分类就形成了不同的色彩模式,不同的色彩模式在PHOTOSHOP中所定义的颜色范围也不同,还可以影响图像的通道数目和文件大小 ”。这是百度百科给出的解释。其实也不用解释这么正式,通俗地说,不同模式的图像,有着不同的通道和颜色范围。
了解了图像的存储,我们也大致知道图像的模式有哪几种。现 介绍较为常见的图像模式,帮助各位读者理解。
1.位图模式
位图模式是1位深度的图像。该模式每个像素点只有两个值,黑色为0,白色为255。因而图像最终给人的感觉便是由密密麻麻的点组成。

2.灰度模式
灰度模式是8位深度的图像模式。在全黑(0)和全白(255)之间插有254个灰度等级的颜色来描绘灰度模式的图像。

3.RGB

4.RGBA
该模式是在RGB模式上加上一个透明通道(alpha),所谓透明通道,是记录该图像中的透明信息,每个像素点的取值依旧是0~255,其中,0表示完全透明,255表示不透明,该通道的作用在于 “ 如果想对图片中某部分透明化,只需要将该区域的像素的alpha通道的值设置为0即可 ”
我们先将模式为RGB的图像转换为模式为RGBA的图像,看看两者有啥区别。
#导入模块Image
from PIL import Image
#打开图像img
im = Image.open('lena.jpg')
#将mode为RGB图像转换为RGBA
imc = im.convert('RGBA')
#显示
imc.show()
最后我们看到模式为RGBA的图像如下:

从图像可以看出,和RGB模式一样,基本看不出差别,我们查看一下其alpha通道的值。
import numpy as np
#导入模块Image
from PIL import Image
#打开图像
im = Image.open('rgba.png')
#将图像转为数组
array=np.array(imc)
#打印
print(array)
运行结果如下:
224 137 127 255
225 138 128 255
227 139 127 255
...
231 146 117 255
223 130 113 255
196 97 91 255
...
177 66 75 255
179 68 77 255
187 76 85 255
从运行结果可以看出每个像素点的alpha通道值都等于255,也就是完全不透明。
博主!博主,我又懵了,该咋办? 不急,我们先来看一下简单点的例子。

在上述程序中,我们创建了6个像素,其中每个像素的alpha通道的值皆为255,即完全不透明,我们接下来修改一下透明通道的值,看看有什么变化。

从上图中,我们可以很明显地看出红色方块颜色减淡,变成半透明状态,绿色方块则变成了全透明状态,由于画布背景为白色,所以我们看到了白色,而蓝色方块也具有一定的透明度。
5.CMYK
CMYK 也称作印刷色彩模式,通俗地说就是用来打印或印刷的模式。其中,C--Cyan(青色),M--Magenta(洋红色),Y--Yellow(黄色),K--Black(黑色)。
该模式是减法模式,当 C、M、Y 三值达到最大值时,在理论上应为黑色,但实际上因颜料的关系,呈现的不是黑色,而是深褐色。为弥补这个问题,所以加进了黑色K。

结语
文章到此就结束了,博主挤出课余时间帮助读者们整理相关资料。别忘记关注点赞哦!博主会不定期更新一些高质量的博文,帮助大家学习理解。

PS:

评论(0)