![98e308595771187d8263d737b9092b89.png](https://img-blog.csdnimg.cn/img_convert/98e308595771187d8263d737b9092b89.png)
本文中对于大多数的操作,是对数字图像处理领域中最为著名的“lena”图片进行操作的。原图如下(Figure 1):
![9cedcfe2f81bfd8817eff45501e620e0.png](https://img-blog.csdnimg.cn/img_convert/9cedcfe2f81bfd8817eff45501e620e0.png)
本文中对于大多数的操作,是对数字图像处理领域中最为著名的“lena”图片进行操作的。原图如下(Figure 1):
I=imread('lena.jpg');
imfinfo('lena.jpg')
imshow(I);
其中,imread()可以读取图片,imfinfo()可以获取图片的信息(Figure 2),imshow()可以显示图片。
![294ab4ef4966be783928b689e584a7eb.png](https://img-blog.csdnimg.cn/img_convert/294ab4ef4966be783928b689e584a7eb.png)
Figure 2
从Figure 2中可以看出,该图片格式为png,长宽均为512px,颜色类型为真彩色。
处理后的图片还需要进行保存:
imwrite(I,'lenaSave.jpg');
1.2 图像数字化
使用imread()读取图像后,可以看到,读入的图片I是以一个512*512*3的矩阵进行保存的,即分别是RGB颜色的数字图片。为了方便起见,在本文中,笔者将lena图进行了转换,转换为灰度图,即保存为一个512*512*1的矩阵。
为了完成这样一个步骤,MATLAB中提供了相应的函数:
I1=rgb2gray(I);
imshow(I1);
I1以512*512*1的矩阵形式进行存储。效果如下图(Figure 3):
![71fbffb2315e2aa5dd369d8370aa1ec4.png](https://img-blog.csdnimg.cn/img_convert/71fbffb2315e2aa5dd369d8370aa1ec4.png)
Figure 3
为了显示图像灰度的分布情况,还需要绘制灰度直方图。可以使用如下代码:
figure,imhist(I1);%显示图片灰度值的统计结果直方图
效果如下(Figure 4):
![f07e6a25caaa37c1902a331e6103c70c.png](https://img-blog.csdnimg.cn/img_convert/f07e6a25caaa37c1902a331e6103c70c.png)
1.4 图像噪声的添加
为了完成多种图像处理的操作和试验,还可以对图片添加噪声。所用函数为imnoise (I, type),该函数中的type可以为5种噪声参数,分别为:'gaussian'(高斯白噪声),'localvar'(与图象灰度值有关的零均值高斯白噪声),'poisson'(泊松噪声),'salt & pepper'(椒盐噪声)和'speckle'(斑点噪声)。
以下为高斯噪声(Figure 5)和椒盐噪声(Figure 6)的代码和效果:
I2=imnoise(I1,'gaussian');
figure,imshow(I2);
![380393251c3e3e4f31088a32b8097cc4.png](https://img-blog.csdnimg.cn/img_convert/380393251c3e3e4f31088a32b8097cc4.png)
I3=imnoise(I1,'salt & pepper');
figure,imshow(I3);
![afdffa7176a7f02553bc17e3e7dbd5c7.png](https://img-blog.csdnimg.cn/img_convert/afdffa7176a7f02553bc17e3e7dbd5c7.png)