数字图像处理(matlab)----基本原理
1.数字图像的表示
一幅图像可以被定义为一个二维函数f(x,y)其中x和y是空间(平面)坐标,f在任何坐标点(x,y)处的振幅称为在该点亮度。将坐标值数字化称为取样,将振幅数字化称为量化,当f的x,y分量和振幅都是有限且离散的量时,称该图像为数字图像。
1.1坐标约定
假设对一幅图像f(x,y)取样后,得到了一副有着M行和N列的图像,我们称这幅图像的大小为M×N。坐标(x,y)的值是离散的。在很多图像处理书籍中,图像原点定义在(x,y)=(0,0)。matlab图像处理工具箱中该坐标系统的原点在(r,c)=(1,1)处。
1.2图像的矩阵表示
等式右边是由定义给出的一幅数字图像,该数组中的每一个元素称为像元,图元或像素。一幅图像在matlab表示成矩阵
一个1×N矩阵称为一个行向量,而一个M×1矩阵称为列向量。一个1×1矩阵是一个标量。
1.3读取、显示、保存图像
使用imread函数可以将图像读入MATLAB环境,imread的语法为imread(‘filename’);函数size可给出一幅图像的行数和列数;函数whos可以显示出一个数组的附加信息;函数imshow显示图像;可用函数figure来同时显示两幅图像;函数imwrite将图像写到磁盘上,函数语法为imwrite(f,‘filename’);函数imfinfo保存一幅图像。下边给一个完整的例子并附上结果:
程序:
f =imread('E:\dip\p02-01.bmp');%说明路径+图片名称
g = imread('p02-02.tif');%如果图片在所编写的文件夹内则不需要说明路径
[M,N] = size(f);
whos f %运行结果对应结果图片1
imshow(f); %运行结果对应结果图片2
figure;imshow(g); %运行结果对应结果图片3
imwrite(f,'patient2.jpg','quality',25);