快速上手Opencv--图片输入的形式(计算机眼中的世界)
声明,这是一篇针对非计算机专业的科普性介绍。
我们常常通过深度学习的方法,利用神经网络去处理图像的识别问题。我们常用的做法就是首先输入图像数据,然后经过一系列学习手段,最后输出一个判断的结果。这里我们不谈论学习的过程,也不谈论最终的结果如何验证,我们仅聚焦于我们输入的数据。
为什么要聚焦于我们输入的数据?
这对我们理解卷积神经网络的运作方式大有裨益。
比如下图:
以上图举例,我们平时看到的到啦A梦就是一个蓝胖子,当我们把图片无限放大(当然无限是一个比较夸张的修辞手法。。。),我们看到的就不再是光滑的图像,而是一个个离散的小格子。这些小格子我们称作像素点。
下面介绍几个专有名词:
像素点:像素是最小的图像单元,这种最小的图形的单元能在屏幕上显示通常是单个的染色点,这些染色点就是像素点。
RGB:RED GREEN BLUE,就是所谓的三基色,通常我们可以调整三种颜色的不同配比得到我们看到的任何颜色。
色彩深度计算机图形学领域表示在位图或者视频帧缓冲区中储存1像素的颜色所用的位数,通常色彩深度越高,表示可用的颜色越多。色彩深度是用 “ n “n “n位颜色” ( n − b i t c o l o u r ) (n-bit colour) (n−bitcolour)来说明的。若色彩深度是 n n n位,即有 2 n 2^{n} 2n种颜色选择,而储存每像素所用的位数就是 n n n。 我们比较常见的是8位的深度,也就是俗称的256色。
尺寸有时候我们也叫像素,例如500*375.(这个很重要,这是我们后面做卷积时候的原始数据)的意思就是这幅图片宽度方向有500个像素点,高度方向有375个像素点。
神奇的三原色
如上图所示,我们以蓝胖子的舌头为例子说明一下红蓝绿色如何组成的大千世界。
选取舌头的原因是因为舌头是橘黄色,不是红色,不是蓝色也不是绿色。
我们选取舌头的图片里面第30行第30列的像素块进行分析,结果是30,119,233.这说明蓝色的色彩深度为30,绿色的色彩深度为119,红色的色彩深度为233.这三种颜色以这种配比可以形成橘黄色。(b,g,r)的顺序是opencv的默认读取方式。
了解了图像在计算机中的显示形式之后,我们在进行卷积操作做特征提取的时候,就不会这样抽象了。
一个小问题思考:
我们第二幅图里面有图像大小,17.7KB,请问这个是如何得到的?(网上有相关公式,但是希望大家手动计算一下)