
2.9 矩阵及其运算综合实例
2.9.1 矩阵在图像处理中的应用
在MATLAB中,一幅灰度数字图像被存为二维矩阵,图像的分辨率是矩阵的行数和列数,矩阵的值对应图像每个点的颜色。对图像进行处理,实际上是对矩阵的值进行操作。在图像处理中,经常对一幅图像进行左右镜像处理,上下翻转,逆时针或者顺时针旋转90°以及图像平铺处理,可以利用本章学过的矩阵结构变换函数方便地实现图像处理。
【例2-21】 已知一幅数字图像lena.bmp,用MATLAB语言对该图像进行左右翻转、上下翻转、逆时针翻转90°、顺时针翻转90°以及进行图像平铺3∗2=6块处理。
程序代码如下:

程序运行结果如图2-3所示,由该例题结果可知,在MATLAB语言中,对数字图像矩阵的简单变换,就能实现对图像的各种处理,所以MATLAB语言特别适合应用于数字图像处理。

图2-3 矩阵结构变换函数处理图像
2.9.2 线性方程组的求解
线性方程组的解一般包括两大类:一类是方程组存在唯一解或者特解,另一类方程组有无穷解或者通解。可以通过求方程组的系数矩阵的秩来判断解的类型。
假设含有n个未知数的m个方程构成方程组Am×nx=b,系数矩阵A的秩为r,方程组的解有下面两种情况:
(1)若r=n,则方程组有唯一解;
(2)若r<n,则方程组有无穷解。
1.线性方程组唯一解
用MATLAB语言求解线性方程组Ax=b唯一解的常用方法是左除法和逆矩阵法,下面通过一个例子介绍这两种方法。
【例2-22】 在MATLAB语言中,用左除法和逆矩阵法分别求解下列线性方法组的唯一解。

程序代码如下:

以上结果表明,当方程组的系数矩阵A的秩等于未知量的个数时,线性方程组具有唯一解,用常用的左除法和逆矩阵方法求解线性方程组的解,结果是一样的。
2.线性方程组多解
用MATLAB语言求解线性方程组Am×nx=b多解的方法常用左除法和伪逆矩阵法,下面通过一个例子介绍这两种方法。
【例2-23】 在MATLAB语言中,用左除法和伪逆矩阵法分别求解下列线性方法组的解。

程序代码如下:

以上结果表明,方程组的系数矩阵A的秩小于未知量的个数时,线性方程组具有无穷解,用常用的左除法和伪逆矩阵方法求解线性方程组的解,结果是不唯一的,但都是方程组的解。
2.9.3 多维数组在彩色图像中的应用
彩色图像被读入MATLAB中,RGB三种颜色分量一般被存为三维数组。对彩色图像处理,实际上是对三维数组进行提取和操作,所以用MATLAB语言处理彩色图像比较方便。下面通过一个例子说明三维数组在彩色图像处理中的应用。
【例2-24】 用MATLAB语言,对一幅彩色图像分别提取红色分量、绿色分量和蓝色分量,并在同一个图形窗口的不同区域显示,利用cat函数把三个分量连接成一个三维数组,并显示合成后的图像。
程序代码如下:

由程序代码可知,彩色图像读入MATLAB中,被存为三维数组,红色分量存为第一页,绿色分量存为第二页,蓝色分量存为第三页。用三维数组提取和连接方法就能实现三种颜色分量的提取以及合成彩色图像。
程序结果如图2-4和图2-5所示。

图2-4 提取彩色图像的各个分量

图2-5 合成图像和原始图像比较