本篇隶属于文集:《零基础入门音视频开发》,查看文集全部文章,请点击文字链接。
想看最新文章,可以直接关注微信公众号:金架构

这篇文章会按照下面这个路线图进行介绍,阅读本文需要三分钟,详细阅读本文需要半小时。



本文路线

流程图最后一项,伽马矫正、JPEG压缩编码和文件格式,只做粗略的理论介绍。因为伽马矫正和压缩编码,需要在实际应用,并且结合其他知识来理解,所以在后面会单开几篇。

1、颜色是啥和我们为什么能看到它

颜色是啥,它其实是我们的视觉系统,对可见光的一种感知。如果我们是瞎子,那人类肯定不会发现还有颜色这种神奇的东西。光透过我们的眼睛,传入我们的大脑,就像照相机咔嚓一声,将一幅图片记录到内存卡。

早在之前,人类就发现光是一种电磁波,而人类并不能看见所有的电磁波,因此把能看见的电磁波,定为可见光。它的波长在380和780nm之间,

我们在自然界看到的大多数光,都不是一种波长的光,它是由许许多多,不同波长的光组合而成,因此我们才能看到这么多颜色。

就像我们看到的太阳光,它也是由多种不同颜色的光组合而成。我们小时候都玩过镜子,用一面镜子,来折射太阳光线到水里,光线再通过水折射到墙上,就出现了彩虹。而牛顿,很早的时候就用棱镜演示了这个事实:白光包含所有可见光谱的波长。



光谱色

在人的视网膜中,有三种对红绿蓝敏感程度不同的椎体细胞,视网膜通过神经元感知外部世界的颜色,而每个神经元,是一个对颜色敏感的椎体。红绿蓝三种椎体细胞,对不同频率的光的感知不同,对不同亮度的感知程度也不同。所以后来人们在数字化图像的时候,面对巨大的数据量,就可以使用压缩编码技术,来降低图像的数据量,而使人眼感觉不到图像质量的下降。

2、图像的颜色模型

2.1 RGB相加混色模型

一个能发出光波的物体称为有源物体,它的颜色,由该物体发出的光波决定。就像彩色CRT一样,三个电子枪分别产生R、G、B三种波长的光,并以各种不同的相对强度组合产生不同的颜色。

因为R、G、B颜色模型是用三种光叠加,来产生特定的颜色,所以这种方法又称为RGB相加混色模型。

在自然界中,任何一种颜色,都可以用R、G、B这三种颜色值之和来确定,在数学书,它们构成一个三维的RGB矢量空间。所以只要R、G、B的数值不同,混合得到的颜色就不同,也就是光波的波长不同。

颜色 =  R(红的百分比)+ G(绿的百分比)+ B(蓝的百分比)


相加混色产生颜色
2.2 彩色图像

在栅格图像下,一幅彩色图像,可以看成由许多点组成。每个点称为一个像素,每个像素都有一个值,它表示特定颜色的强度。一个像素值通常由R、G、B三个分量表示。如果每个像素的每个颜色分量用“1”和“0”表示,即每种颜色的强度是100%或0%,那么每个像素所呈现的颜色,就会是8种(2的三次方)颜色之一。



栅格图像
2.3 CMY相减混色模型

一个不发光波的物体,称为无源物体,它的颜色,由物体吸收或者反射那些光波决定。就像我们看见树叶是绿色的,是因为阳光照在树叶上,其他的可见光被吸收,绿光被反射,所以我们才看得见。如果半夜去,能看见我服你!

当我们画水彩的时候,我们将颜料进行混合,绘制的图画,也是一种无源物体。

使用C(青色cyan)、M(品红magenta)、Y(黄色yellow)按一定比例混合得到颜色的方法,称为CMY模型,也称CMY相减混色模型(为什么下面讲)。

同样,任何一种颜色使用C、M、Y也可以混合得到。



相减混色
2.3.1 为什么叫做CMY相减混色模型

CMY相减混色模型这样命名的原因,是因为这种混色模型,使用从白光中,减去对应数值的C(青色cyan)、M(品红magenta)、Y(黄色yellow)三种颜色而产生颜色

如果这句话不能使你充分理解,那么可以结合RGB相加混色模型一起理解。如下图:



RGB相加混色

如图所示,R(红)、G(绿)、B(蓝)的两两交集产生C(青)、M(品红)、Y(黄),而RGB三者的交集产生白色。

列成等式就是这样:

  (1)白 = 红 + 蓝 + 绿;(2)黄 = 红 + 绿;(3)青 = 蓝 + 绿;(4)品红 = 红 + 蓝;

如果我们现在使用CMY相减混色模型来产生颜色,那么它产生颜色的过程如下:

假如“黄”的数值已知,那么可以用白色(基准值)减去黄色得到蓝色,同理可得红色和绿色的值。而我们都知道,RGB可以组成几乎所有的颜色,因此颜色产生。

如果说到这还想不明白,请用(1)式分别减(2)、(3)、(4)式。

所以总结起来,相减混色和相加混色其实互为互补色,RGB中颜色值为1的地方,在CMY对应的位置上,其颜色值为0。它们的关系如下所示:



相加色与相减色的关系

利用这种关系,RGB可以转化成CMY,因为RGB常用在显示器、计算机图像等显示设备上,而CMY常用在打印机、印刷上,所以可以把显示的颜色,转换成打印的颜色。

3 图像的三个基本属性
3.1 图像分辨率

前面我们介绍过显示器分辨率,它表示显示器能够显示画面的细腻度。而图像分辨率,是图像精细程度的度量方法。对同样尺寸的一幅图像,如果像素数目越多,则说明图像的分辨率越高,看上去越逼真。相反,图像看起来越粗糙。

图像分辨率也称空间分辨率,或者像素分辨率

在实际应用中,我们通常这样表示图像分辨率:

1、物理尺寸:通过每毫米的线数或行数来标识,比如一幅640x480的图像,物理尺寸为10mm x 10mm,那么它每毫米有48行

2、行列像素:像素/行 x 行/幅,如640像素/行 x 480行/幅

3、像素总数:如手机或者数码相机上标的,1200万像素

4、单位长度上的像素:如像素每英寸(pixels per inch, PPI)

5、线对数:以黑白相邻的两条线为一对

在这五种表示法中,如果是显示在手机或者计算机显示器上,第五种和第一种很少用到。比如线对数,在显示器中,图像被单行扫描,所以线对数用到较少,有兴趣的可以自行百度。

3.1.1 图像分辨率和屏幕分辨率

有的人可能咋然看到这两个词,有点分不清。其实道理很简单,屏幕相当于画布,图像如果大于画布,就画不下,只能画出整幅图像的一部分。比如,如果屏幕分辨率为640x480,那么一副320x240的图像,就只占显示屏的1/4。相反,2400x3000像素的图像就不能显示完整画面。

有的人可能又会说,不对呀,我在电脑上或手机上打开任何一幅图,都能看到完整的画面呀。是这样,我们在电脑上打开或者手机上打开图片的时候,都会默认使用看图软件打开,在打开的时候,看图软件已经对原图做了处理。

比如一幅分辨率大于屏幕分辨率的图像,软件会删除图像的一些像素,来显示完整。如果你对图片进行放大,那么程序会根据算法,再添加一些像素进去。这样一来,一幅高分辨率的图像,被放大之后,被程序加入的像素就比低分辨率的要少,所以它依然很清晰,而低分辨率的此时可能已经看不清了。

有人可能还会说,不对呀,我在电脑上放大一幅图片的时候,放大到最后,图像的每个像素我都能看得见,程序加的像素在哪儿呢?在这里我也放大一幅图片放在这,请看下图:



放大一张图像

问这个问题的,首先是没搞清楚图像分辨率和屏幕分辨率是怎么一回事。我现在使用的屏幕分辨率是1280x800,图像被放大到每个像素都能看见,然而,像素点有这么大嘛?显示器上每行有1280个像素点,图像被放大后,显示器上依然有1280个点,而图像的总像素也没有变,那程序加的像素在哪儿呢?

就在放大后的每个像素格子上!可以这样理解,放大前图像的一个像素用显示器的一个像素显示,放大之后,图像的一个像素格子用显示器的20个像素显示。那每个格子多余的19个像素从哪儿来?

【音视频基础】(三):俗称照片的彩色数字图像一相关推荐

  1. 音视频基础(三)WAV格式与PCM简介

    最近的工作涉及到语音识别相关的研究,因此先简单的梳理一下WAV格式和PCM.以前用c++实现了mp3 player,这个时候再来回顾下代码实现,将WAV的播放 看了下. 什么是PCM 直接上百度百科的 ...

  2. 【音视频基础】(四):俗称照片的彩色数字图像二

    上次说到了图像的三个基本属性,只说了一个图像分辨率,下面开始介绍另外两个基本属性. 3.2 第二个属性:像素深度和阿尔法(α)通道 像素深度其实就是,存储每个像素所用的位数(科普:1GB=1024MB ...

  3. 音视频基础(2)声音的三要素,模数转换

    文章目录 音视频基础(2)声音的三要素,模数转换 音视频基础(2)声音的三要素,模数转换

  4. 音视频开发--音视频基础

    音视频基础 一.音视频录制原理 视频录制流程 1.准备摄像头 2.图像帧阶段 从摄像头采集视频数据(图像帧),采集数据格式:YUV或者RGB,YUV和RGB细分的话还包括YUV 4:4:4.YUV 4 ...

  5. C++实战手把手教您用ffmpeg和QT开发播放器--01音视频基础知识

    笔记:https://blog.csdn.net/tainjau/article/category/9272757 音视频基础知识 封装.解码.重采样.像素格式 1.MPEG-4 MPEG-4标准将众 ...

  6. 音视频基础系列之色彩与人眼视觉特性

    音视频基础系列之色彩与人眼特性及应用 光的性质 光的分类 物体的颜色 色温 光的衡量单位 人眼的视觉特性 人眼的四种特性 三基色原理 电视图像基础知识 光的性质 从三个方面来介绍光的一些特性,光的分类 ...

  7. 音视频基础——视频基础知识

    感情中特能折腾的人,很多都是之前恋情里受过创伤的人.人总有一种"补偿情结",希望把之前吃过的亏在日后一股脑儿地补回来.那些陈年旧帐就这样算到了新人头上.殊不知,成熟的爱,是伤口处开 ...

  8. Android车载应用开发与分析(6)- 车载多媒体(一)- 音视频基础知识与MediaPlayer

    多媒体应用是车载信息娱乐系统的一个重要组成部分,一般包含音视频播放.收音机.相册等.车载应用多媒体系列初步计划分为六篇,这是第一篇. 参考资料 视频和视频帧:视频和帧基础知识整理 百度百科 - 声道 ...

  9. ffmpeg音视频基础知识

    ffmpeg音视频基础知识 前言 一.图像的基础知识 二.视频编码基础知识 1.视频和图片之间的关系 2.为什么要编码? 3.什么是编码? 视频相关专业术语 提示:文章写完后,目录可以自动生成,如何生 ...

最新文章

  1. python3+matplotlib+tkinter
  2. 28、jdbc操作数据库(5)
  3. linux 常用命令02--文件属性 以及软硬链接
  4. Web前端笔记(4)
  5. 关于黑马JavaWeb教程注册登录案例报错
  6. 有向图(3.基于十字链表的c++实现)
  7. idea使用教程-安装
  8. 沟通CTBS常见问题
  9. python程序设计基础教程答案山东联盟答案_知到Python程序设计基础(山东联盟)测试答案-查询...
  10. Spring Boot layered(分层) jar 构建docker镜像
  11. 未知的软件异常0xc0000409解决办法
  12. Win11后续更新计划:微软将逐步取消传统的控制面板功能
  13. 《计算机工程》投稿经验分享
  14. 这些道理不懂,你注定就是穷打工的命
  15. 支付宝之小鸡拍球游戏(C++)
  16. springboot 环境配置测试环境和线上环境配置
  17. 读书笔记:Faster R-CNN:Towards Real-Time Object Detection with Region Proposal Networks
  18. Conda各平台安装配置和使用Python环境(保姆级教程)
  19. HDU - 3556 - Continued Fraction
  20. 移植 SOEM 到嵌入式平台 STM32F767

热门文章

  1. D2550运行Linux,也发一个128*128的相框lcd4linux的conf
  2. 计算机信息技术与幼儿教育论文,信息技术应用于幼儿教育论文
  3. 乳腺仿体breast phantom的MATLAB实现及探讨
  4. SPI flash远程加载FPGA 应用
  5. 杰里之主动降噪与物理降噪的区别【篇】
  6. 叉积 微分 恒等式_微分几何(一)
  7. 排列熵、模糊熵、近似熵、样本熵的原理及MATLAB实现之近似熵
  8. 如何制作一个简单的html网页
  9. pe修复linux驱动,【CTF习题】BrokenDrivers(驱动修复及内核调试)
  10. 换脸新潮流:BIGO风靡全球的人脸风格迁移技术