图片处理(Picture Lab)活动1:数字图片与颜色基础
以手机摄像头的广告词为例,通行的做法是会说明摄像头能够记录多少百万像素(megapixel)。百万像素的意思是数码相机的传感器能够记录下以行列分布的一百万个点,每一点称为一个像素(pixel)。小米6的后置摄像头可以记录一千二百万像素的颜色信息,这可真不少。所有的这些信息是否都必要呢?如果你通过微信把新拍摄的照片发给朋友,一般只要一两百万像素就足够了。但是如果是放大照片的局部并打印成大海报,更多的像素能够提供更为丰富的细节信息。
像素的颜色是如何记录的?它可以被RGB(红绿蓝)颜色模型所描述,以0至225的值分别存储三原色的强度。用红色和绿色就可以组成黄色。可以注意到这与用颜料调色不太一样——计算机和手机的显示屏通过细微的三原色发光单元来组合出各种颜色,而颜料则靠反光。将所有颜料调在一起会得到黑色,而三原色发光单元均以最大功率运作则会显示白色。RGB颜色模型有时还会额外储存一个alpha值,用以描述颜色的透明度。透明或者半透明的颜色可以让你看到显示层级之下的其他颜色。

那么计算机又如何表示0至255的值呢?十进制数(decimal number)使用0至9的数字以10为幂表示数值。256意味着6个一(\(10^0\))加上5个十(\(10^1\))加上2个百(\(10^2\))。计算机内部使用二进制数(binary number),用0和1的数字以2为幂表示数值。二进制数的一位称为比特(binary digit, bit),可以取值为0或1。8个一组的比特成为字节(byte)。二进制数110意味着0个一(\(2^0\))加上1个二(\(2^1\))加上2个四(\(2^2\)),即是十进制的6。
问题
- 表示0至255的值需要多少比特?
- 表示RGB颜色模型的一种颜色需要多少字节?
- 640像素宽、480像素高的一幅图片总共有多少像素?
1 条评论
AP计算机科学实验:图片处理(Picture Lab) – AP Computer Science · 2018年5月5日 上午11:03
[…] 活动1:数字图片与颜色基础 […]