MATLAB计算机视觉经典应用
上QQ阅读APP看本书,新人免费读10天
设备和账号都新为新人

2.3.1 图像和视频

图像和视频是计算机视觉的基石,没有图片和视频就谈不上视觉。因此,下面先来了解一下图像与视频的相关概念。

1. 图像

一幅图像包含维数、高度、宽度、深度、通道数、颜色格式、数据首地址、结束地址、数据量等。

(1)图像深度。

图像深度是指存储每个像素所用的位数(bits)。当一个像素占用的位数越多时,它能表现的颜色就更多、更丰富。假设有一幅400像素×400像素的8位图,那么这幅图的原始数据量是多少?像素值如果是整型的话,那么取值范围是多少?

• 原始数据量计算:400×400×(8/8)B=160000B。

• 取值范围:0到2的8次方,即0~255。

(2)图像格式与压缩。

常见的图像格式有JPEG、PNG、BMP等,本质上都是图像的一种压缩编码方式,如JPEG压缩。

• 将原始图像分为8×8的小块,每个小块里有64像素。

• 将图像中每个8×8的小块进行DCT变换(越是复杂的图像,越不容易被压缩)。

• 不同的图像被分割后,每个小块的复杂度不一样,因此,最终的压缩结果也不一样。

2. 视频

原始视频=图像序列,视频中的每幅有序图像称为帧。压缩后的视频会采取各种算法减小数据的容量,其中IPB就是最常见的算法。

• I帖:表示关键帧,可以理解为这一幅画面的完整保留;解码时只需本帧数据就可以完成(因为包含完整画面)。

• P帧:表示这一帧跟之前的一个I帧(或P帧)的差别,解码时需要用之前缓存的画面叠加上本帧定义的差别来生成最终画面。也就是说,P帧没有完整画面数据,而只有与前一帧画面相比的差别数据。

• B帧:表示双向差别帧,记录本帧与前后帧的差别(具体比较复杂,有4种情况)。换言之,要解码B帧,不仅要取得之前的缓存画面,还要解码之后的画面,要通过前后画面与本帧数据的叠加取得最终画面。B帧压缩率高,但是解码比较麻烦。

• 码率:码率越大,体积越大;码率越小,体积越小。

码率就是数据传输时单位时间传送的数据位数,一般用的单位是kbps,即取样率(并不等同于采样率,采样率用的单位是Hz,表示单位时间采样的次数)。码率越高,精度就越高,处理出来的文件就越接近原始文件,但是文件体积与码率是成正比的,因此,几乎所有的编码格式重视的都是如何用最低的码率达到最小的失真,围绕这个核心衍生出来了cbr(固定码率)与vbr(可变码率)。码率越高越清晰,反之则画面粗糙且多马赛克。

• 帧率:影响画面流畅度,与画面流畅度成正比,帧率越高,画面越流畅;帧率越低,画面越有跳动感。如果码率为变量,则帧率也会影响体积,帧率越高,每秒钟经过的画面就越多,需要的码率也越高,体积也越大。

帧率就是在一秒钟时间里传输的图像的帧数,也可以理解为图形处理器每秒钟刷新的次数。

• 分辨率:影响图像大小,与图像大小成正比,即分辨率越高,图像越大;分辨率越低,图像越小。

• 清晰度:在码率一定的情况下,分辨率与清晰度成反比,即分辨率越高,图像越不清晰,分辨率越低,图像越清晰。

在分辨率一定的情况下,码率与清晰度成正比,即码率越高,图像越清晰;码率越低,图像越不清晰。

• 带宽。例如,在ADSL线路上传输图像,上行带宽只有512kbps,但要传输4路CIF分辨率的图像。按照常规,CIF分辨率建议码率是512kbps,照此计算就只能传输1路,降低码率势必会影响图像质量。此时,为了确保图像质量,就必须降低帧率,这样一来,即便降低码率也不会影响图像质量,但在图像的连贯性上会有影响。