美国Mathwork公司于1967年推出了“Matrix Laboratory”(缩写为Matlab)软件包,并不断更新和扩充。目前最新的7.x版本(windows环境)是一种功能强、效率高便于进行科学和工程计算的交互式软件包。其中包括:一般数值分析、矩阵运算、数字信号处理、建模和系统控制和优化等应用程序,并集应用程序和图形于一个便于使用的集成环境中。在此环境下所解问题的Matlab语言表述形式和其数学表达形式相同,不需要按传统的方法编程[5]。
Matlab支持5种图像类型:索引图像、灰度图像、二值图像、RGB图像和多帧图像阵列,并支持BMP、GIF、EG等多种图像文件格式的读、写和显示,并能够方便地进行图像的处理。
Matlab对图像的处理功能主要集中在其自带的图像处理工具箱中,该图像处理工具箱由一系列支持图像处理操作的函数组成,可以对原图像进行诸如几何操作、区域操作和块操作等多种图像处理操作。图像的加、减、乘、除等基本变换和图像变形本质上其实都是矩阵的相应的数组运算过程[6]。因此在对图像进行简单处理时可直接调用相关的函数。在实际应用中,根据不同的具体情况调用不同的工具箱函数,就可以方便地对数字图像进行处理。文献综述
2 图像处理的基础知识
2.1 Matlab图像处理的基本函数
利用Matlab进行图像处理时会用到以下一些基本指令:
读入图像的指令: imread;
显示图像的指令: imshow;
存入图像的指令: imwrite(可将图像以300dpi的分辨率和tiff格式保存)。
函数size(f)可以求出一幅图像的行数和列数;
函数whos(f)可以显示出一个数组的附加信息;
将真彩色图像变为灰度图像的函数:rgb2gray();
将灰度图像转变为二值图像的函数:im2bw(f,T),输出图像对应为输入图像 中阈值小于 的像素点( )。如果省略参数 ,则默认值为0.5。
2.2 图像处理的分类
对图像的处理可以分为空间域和频域。
空间域是指图像本身,在空间域上的处理就是直接对图像像素进行处理。主要的空间域处理方法有亮度变换和空间滤波(也称为邻域处理或空间卷积)[7]。图像处理在空间域的基本运算包括点运算,代数运算,逻辑运算,几何运算。而频域上的处理是指根据一定的图像模型,对图像的频谱进行修改。频域上的图像处理是用途更为广泛的处理方式,在以下的几节中会有详细的介绍。
2.3 图像的代数运算和逻辑运算
2.3.1 加法运算
加法运算主要用于图像的平均值去噪。同一场景在不同时候显示出来的图像中的噪点是不一样的,并且噪点都是随机分布的,因此,把某一特定场景的多幅图像进行相加然后求平均值,就可以有效地减轻图像的加性噪声。源.自/优尔·论\文'网·www.youerw.com/
示例程序如下:
>> i=imread('C:\Users\user\Desktop\2.jpg');
>> I=rgb2gray(i);
>> J=imnoise(I,'gaussian',0,0.02); %向图片中加入高斯噪声
>> imshow(I),title('原图');
>> figure,imshow(J),title('加入高斯噪声后的图');
>> k=zeros(118,129); %产生一个全零的矩阵,矩阵大小与原图相同
%循环100加入噪声,并求平均值
for x=1:100
J=imnoise(I,'gaussian',0,0.02);
J1=im2double(J);
k=k+J1;
end
>>k=k/100;
>>figure(3),imshow(k),title('求平均后的图')