- MATLAB计算机视觉实战
- 赵小川 何灏 唐弘毅
- 17字
- 2021-03-30 17:55:22
第2章 计算机视觉与数字图像处理基础
2.1 基本概念
2.1.1 什么是“计算机视觉”
计算机视觉(Computer Vision,CV)是一门研究如何让计算机达到人类那样“看”的学科,它利用视觉传感器和计算机代替人眼和大脑,使得计算机拥有类似于人类那种对目标进行分割、分类、识别、跟踪、重构、判别、决策的功能,是人工智能领域的一个重要部分。
计算机视觉的最终研究目标就是使计算机能像人那样通过视觉观察和理解世界,具有自主适应环境的能力。计算机视觉系统中信息的处理和分析大致可以分成两个阶段:图像处理阶段,又称视觉处理中的低水平和中水平阶段;图像分析、理解阶段,又称视觉处理中的高水平处理阶段。
2.1.2 什么是“数字图像”
不同领域的人对“图像”的概念有着不同的理解。从工程学的角度来讲,“图”是物体透射或反射光的分布;“像”是人的视觉系统对图的接收在大脑中形成的印象或认识。因此,图像常与光照、视觉等概念联系在一起,光的强弱、光的波长以及物体的反射等特点决定了图像的客观属性,而人(动物)的大脑是图像的主观载体。
图像与图形是两个不同的概念,图像具有不规则性、自然性、复杂性,从数学的角度来讲,图像是一个复杂的数学函数,这个数学函数很难用解析式来表示。而图形很多时候可以用数学函数来描述。
图像的种类有很多,根据人眼的视觉特性可将图像分为可见图像和不可见图像,可见图像包括单张图像、绘图、图像序列等,不可见图像包括不可见光成像和不可见量形成的图,如电磁波谱图、温度及压力等的分布图。图像按像素空间坐标和亮度(或色彩)的连续性可以分为模拟图像和数字图像。
图像处理是一门年轻的、充满活力的交叉学科,并随着计算机技术、认知心理学、神经网络技术以及数学理论的新成果(如数学形态学、小波分析、分形理论)而飞速发展。当前图像处理技术研究的对象是数字图像。
那么,什么是数字图像呢?数字图像是相对于模拟图像而言的。简而言之,模拟图像就是物理图像,是人眼能够看到的图像,它是连续的。计算机无法直接处理模拟图像,因此,数字图像应运而生。数字图像是模拟图像经过采样和量化,使其在空间上和数值上都离散化,形成一个数字点阵。
数字图像处理有如下特点:
(1)目前,数字图像处理的信息大多是二维信息,处理信息量很大。如一幅256×256低分辨率黑白图像,要求约64kbps的数据量;对于高分辨率彩色512×512图像,则要求768kbps数据量。如果要处理30帧/秒的电视图像序列,则要求500kbps~22.5Mbps数据量,因此对计算机的计算速度、存储容量等要求较高。
(2)数字图像处理占用的频带较宽。与语言信息相比,数字图像占用的频带要大几个数量级,如电视图像的带宽约5.6MHz,而语音带宽仅为4kHz左右。所以在成像、传输、存储、处理、显示等各个环节的实现上,技术难度大,成本高,这就对频带压缩技术提出了更高的要求。
(3)数字图像中各个像素不是独立的,其相关性大。在图像画面上,经常有很多像素相同或接近的灰度。就电视画面而言,同一行中相邻两个像素或相邻两行间的像素,其相关系数可达0.9以上,而一般情况下相邻两帧之间的相关性比帧内相关性还要大。因此,数字图像处理中信息压缩的潜力很大。
数字图像处理对以往的图像处理方法而言无疑是一次新的革命,它彻底改变了以往人们处理图像时所采用的方法,具有如下优点:
(1)再现性好。数字图像处理与模拟图像处理的根本不同在于:它不会因图像的存储、传输或复制等一系列变换操作而导致图像质量的退化;只要图像在数字化时准确地表现了原图,数字图像处理过程就始终能保持图像的再现。
(2)处理精度高。按目前的技术,几乎可将一幅模拟图像数字化为任意大小的二维数组,这主要取决于图像数字化设备的能力。现代扫描仪可以把每个像素的灰度等级量化为16位甚至更高,这意味着图像的数字化精度可以达到满足任何应用需求。对计算机而言,不论数组大小,不论每个像素的位数多少,其处理程序几乎是一样的。换而言之,从原理上讲不论图像的精度有多高,处理总是能实现的,只要在处理时改变程序中的数组参数就可以了。对比一下图像的模拟处理,为了要把处理精度提高一个数量级,就要大幅度地改进处理装置,这在经济上是极不合算的。
(3)适用面广。图像可以来自多种信息源,它们可以是可见光图像,也可以是不可见的波谱图像(例如射线图像、超声波图像或红外图像等)。从图像反映的客观实体尺度看,可以小到电子显微镜图像,大到航空照片、遥感图像甚至天文望远镜图像。这些来自不同信息源的图像只要被变换为数字编码形式,均是由二维数组表示的灰度图像(彩色图像也是由灰度图像组合成的,例如RGB图像由红、绿、蓝三个灰度图像组合而成)组合而成,因而均可用计算机来处理。即只要针对不同的图像信息源采取相应的图像信息采集措施,图像的数字处理方法适用于任何一种图像。
(4)灵活性高。由于图像的光学处理从原理上讲只能进行线性运算,这极大地限制了光学图像处理能实现的目标。而数字图像处理不仅能完成线性运算,而且能实现非线性处理,即凡是可以用数学公式或逻辑关系来表达的一切运算均可用数字图像处理来实现。
2.1.3 数字图像处理的一些基本概念
从理论上讲,图像是一种二维的连续函数,然而在计算机上对图像进行数字处理的时候,首先必须对其在空间和亮度上进行数字化,这就是图像的采样和量化的过程。空间坐标(x,y)的数字化称为图像采样,而幅值数字化称为灰度级量化。物理图像数字化的过程如图2.1.1所示。
图2.1.1 物理图像数字化的过程
1.图像采样
图像采样是对图像空间坐标的离散化,它决定了图像的空间分辨率。采样可以这样形象地理解:用一个方格把待处理的图像覆盖,然后将每一小格上模拟图像的亮度取平均值,作为该小方格中点的值,如图2.1.2所示。
图2.1.2 图像采样过程示意图
对一幅图像采样时,若每行(横向)采样数为M,每列(纵向)采样数为N,则图像大小为M×N个像素,f(x,y)表示点(x,y)处的灰度值,则F(x,y)构成一个M×N实数矩阵,即
经验分享:“像素”的英文为pixel,它是picture和element的合成词,表示图像元素的意思。可以对“像素”进行如下理解:像素是一个面积概念,是构成数字图像的最小单位。像素不同的图像比较如图2.1.3所示。
图2.1.3 像素不同的图像比较
像素的大小与图像的分辨率有关,分辨率越高,像素就越小,图像就越清晰。
2.灰度量化
把采样后所得的各像素灰度值从模拟量到离散量的转换称为图像灰度的量化。量化是对图像幅度坐标的离散化,它决定了图像的幅度分辨率。
量化的方法包括分层量化、均匀量化和非均匀量化。分层量化是把每一个离散样本的连续灰度值分成有限多的层次;均匀量化是把原图像灰度层次从最暗至最亮均匀分为有限个层次,如果采用不均匀分层就称为非均匀量化。
当图像的采样点数一定时,采用不同量化级数的图像质量不一样。量化级数越多,图像质量越好;量化级数越少,图像质量越差。量化级数小的极端情况就是二值图像。
经验分享:“灰度”可以认为是图像色彩亮度的深浅。图像所能够展现的灰度级越多,也就意味着图像可以表现更强的色彩层次。如果把黑—灰—白连续变化的灰度值量化为256个灰度级,则灰度值的范围为0~255,表示亮度从深到浅,对应图像中的颜色为从黑到白。
下面介绍几种常见的数字图像类型。
(1)黑白图像,如图2.1.4所示。图像的每个像素只能是黑或白,没有中间的过渡,故又称为二值图像。二值图像的像素值为0、1。
图2.1.4 黑白图像及其表示
(2)灰度图像,如图2.1.5所示。灰度图像是指每个像素的信息由一个量化的灰度级来描述的图像,没有彩色信息。
图2.1.5 灰度图像及其表示
(3)彩色图像,如图2.1.6所示。彩色图像是指每个像素的信息由RGB三原色构成的图像,其中RGB是由不同的灰度级来描述的。
图2.1.6 彩色图像及其表示
(4)序列图像,如图2.1.7所示。把具有一定联系的、具有时间先后关系的图像称为序列图像。我们经常看到的电视剧或电影图像主要是由序列图像构成的。序列图像是数字多媒体的重要组成部分。序列图像是单幅数字图像在时间轴上的扩展,可以将视频的每一帧视为一幅静止的图像。由此可见,视频序列图像是由一帧一帧具有相互关联的图像构成,这种相互关联性为进行视频图像处理提供了便利。视频图像中所含的帧数、每帧图像的大小以及播放的速率是衡量视频图像的重要指标。
图2.1.7 序列图像
2.1.4 数字图像的矩阵表示
二维图像进行均匀采样及灰度量化后,就可以得到一幅离散化成M×N样本的数字图像,该数字图像是一个整数阵列,因而可用矩阵来直观地描述该数字图像。如果采用如图2.1.8所示的采样网格来对图像进行采样量化,则可得到式(2.1.1)所示的数字化图像表示。
图2.1.8 图像采样网格示意图
这样,一幅数字图像在MATLAB中就可以自然而然地表示为
经验分享:由于在MATLAB中矩阵第一个元素的下标为(1,1),因此在式(2.1.2)中f(1,1)等于式(2.1.1)中的f(0,0)。式(2.1.1)和式(2.1.2)在表示上意思是一样的,只是原点不同。
对数字图像进行处理,也就是对特定的矩阵进行处理。在C语言中,对M×N数字图像处理的核心代码如下:
在MATLAB中,对M×N数字图像处理的核心代码如下: