前言
一、计算机中的图像显示原理
1.1 大体步骤
1.2 案例:显示图像3
1.3 分辨率和灰度
1.4 彩色图像原理
注:以下部分图片来自YouTube优质内容博主:Murtaza's Workshop - Robotics and AI ,特此鸣谢!
记得在小学的时候,那时候特别喜欢玩电脑。后来玩着玩着就开始思考一个问题:
计算机和电视,为什么能够展现出多姿多彩的图像呢?
于是在高中的一次计算机公开课,我做了一个小研究,内容是计算机中图像是怎么存储的。
记得当时我的IT老师说我讲的很清楚,很棒。那次公开课是我在计算机原理领域的启蒙。
今天又再次复习了一下,特此分享给大家,分享给对此感兴趣的小伙伴们。(无需基础)
如果一个计算机要显示图像,那么肯定需要分为两步:
1.准备好一系列的逻辑代码,以最简单的01序列为例:
计算机的机器语言是基于二进制的,只有0 or 1;
假设0表示黑,1表示白,
那么一个很长的01序列就可以表示一个显示器中,哪些地方是黑色,哪些地方是白色。
2.还需要一个显示器,以及信号线,显卡等。
他们的功能是把第一步中的逻辑数字或者模拟信号,由显卡转换成图像数据信号,再通过信号线连接至显示器;
显示器收到相关信号后,便把对应信号通过显像管,以亮度变化的形式,显示在屏幕上。
而显示器实际上由很多个一个一个的小方格组成,举个例子:
我们平时说的HD,指的是“High Definition”,也就是高分辨率;
HD分辨率或像素是1280*720,指的是,一台显示器的长度由1280个方块边组成,宽由720个方块边组成,
也就是一共具有1280*720个方块;
以黑白图像为例,根据第一步的逻辑代码,那么有的方块显示的就是白色,有的方块显示的就是黑色。
所有方块赋上白/黑后,就成为了一副黑白图像,显示在了我们的眼前。
假如我想在计算机上显示图像3:
这是我们的一个盒子(也就是显示屏)
我们要做的,就是用黑色去填部分方块,使之看上去是一个3
这是显示器上显示的图像。那么背后的逻辑呢?
我们可以用0来表示方框颜色为黑,1来表示方框颜色为白。
如果我们想让3更像3,那么我们可以改变小方块的数量。
这些小方块就是我们说的像素。
像素的个数就是我们说的分辨率。
以VGA举例:
VGA意味着在其宽度上有640个小方块,高度上有480个小方块。
显然,HD的盒子更多,图像也就更加清晰。
目前我们绘制的图像是黑白的,只有黑或者白,这称为二进制图像:
为了获得更多细节,我们可以不仅用0或者1,我们可以用8个二进制位来表示一种颜色,
也就是说,我们一共能有2^8=256中选择,在纯黑或者纯白之间。
这样的图像被称为灰度图像。
那么如何显示彩色图像呢?
对于彩色图像,我们用三个灰度图像来表示红色,绿色,蓝色的强度,简称RGB。
显示器大都是采用了RGB颜色标准, 在显示器上,是通过电子枪打在屏幕的红、绿、蓝三色发光极上来产生色彩的,电脑一般都能显示32位颜色,有一千万种以上的颜色。
RGB是从颜色发光的原理来设计定的,通俗点说它的颜色混合方式就好像有红、绿、蓝三盏灯,当它们的光相互叠合的时候,色彩相混,而亮度却等于三者亮度之总和,越混合亮度越高,即加法混合。
红、绿、蓝三盏灯的叠加情况,中心三色最亮的叠加区为白色,加法混合的特点:越叠加越明亮。
红、绿、蓝三个颜色通道,每种色各分为256阶亮度,在0时“灯”最弱——是关掉的,而在255时“灯”最亮。当三色灰度数值相同时,产生不同灰度值的灰色调,即三色灰度都为0时,是最暗的黑色调;三色灰度都为255时,是最亮的白色调。
RGB将这些图像叠加在一起,就成为了彩色图像。
这意味着,一个VGA分辨率的彩色图像需要640*480*3个小方块。
这就是图像显示的原理。