数字图像处理实验报告5

更新时间:2024-03-18 01:23:01 阅读量: 综合文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

数字图像处理与分析

实 验 报 告

学院: 班级: 姓名: 学号:

实验五 (1)图像压缩

一、 实验目的

1. 理解图像压缩的基本定义和常见方法 2. 掌握在MATLAB中进行图像压缩的方法 3. 掌握利用DCT进行图像压缩的方法

4. 进一步熟悉了解MATLAB语言的应用,为进行综合性图像处理实验打下基础

二、 实验内容

%利用离散余弦变换进行JPEG图像压缩

I=imread('1.bmp'); %读入原图像;

I=im2double(I); %将原图像转为双精度数据类型; T=dctmtx(8); %产生二维DCT变换矩阵

B=blkproc(I,[8 8],'P1*x*P2',T,T'); %计算二维DCT,矩阵T及其转置T’是DCT

函数P1*x*P2的参数

Mask=[ 1 1 1 1 0 0 0 0 1 1 1 0 0 0 0 0 1 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0]; %二值掩膜,用来压缩DCT系数,只留下数中

左上角的10个

B2=blkproc(B,[8 8],'P1.*x',Mask); %只保留DCT变换的10个系数 I2= blkproc(B2,[8,8],'P1*x*P2',T',T); %逆DCT,重构图像 Subplot(1,2,1);

Imshow(I);title('原图像'); %显示原图像 Subplot(1,2,2);

Imshow(I2);title('压缩图像'); %显示压缩后的图像。虽然舍弃了85%的DCT

系数,但图像仍然清晰(有一些质量损失)

得到图像:

(2)数学形态学

一、 实验目的

1. 了解二值形态学的基本运算

2. 掌握基本形态学运算的Matlab实现imclose, imopen,imdilate, imerode, strel. 3. 了解形态操作的应用

二、 实验内容

1.实现二值图像的基本形态学处理(腐蚀、膨胀、开运算和闭运算); 2. 选择不同结构元素筛选图像目标。

三、 实验步骤

运用空间椭球状的元素结构处理 1. 实现图像的膨胀处理

I=imread('C:\\Documents and Settings\\Administrator\\桌面\\IMG0923181600.BMP'); se = strel('ball',5,5); I2 = imdilate(I,se); imshow(I); title('Original'); figure;

imshow(I2); title('Dilated'); 得到图像:

2. 实现图像的腐蚀处理

I=imread('C:\\Documents and Settings\\Administrator\\桌面\\IMG0923181600.BMP'); se = strel('ball',5,5); I2 = imerode(I,se); imshow(I);

title('Original'); figure;

imshow(I2); title('Eroded');

得到图像:

3. 实现图像的开运算处理

I=imread('C:\\Documents and Settings\\Administrator\\桌面\\IMG0923181600.BMP'); se = strel('ball',5,5); I2 = imopen(I,se); imshow(I); title('Original'); figure;

imshow(I2); title('Opened'); 得到图像:

4. 实现图像的闭运算处理

I=imread('C:\\Documents and Settings\\Administrator\\桌面\\IMG0923181600.BMP'); se = strel('ball',5,5);

I2 = imclose(I,se); imshow(I); title('Original'); figure;

imshow(I2); title(' Closed'); 得到图像:

运用垂直线型的元素结构处理 1. 实现图像的膨胀处理

I=imread('C:\\Documents and Settings\\Administrator\\桌面\\IMG0923181600.BMP'); se = strel('line',11,90); I2 = imdilate(I,se); imshow(I); title('Original'); figure;

imshow(I2); title('Dilated'); 得到图像:

2. 实现图像的腐蚀处理

I=imread('C:\\Documents and Settings\\Administrator\\桌面\\IMG0923181600.BMP'); se = strel('line',11,90); I2 = imerode(I,se); imshow(I); title('Original'); figure;

imshow(I2); title('Eroded');

得到图像:

3. 实现图像的开运算处理

I=imread('C:\\Documents and Settings\\Administrator\\桌面\\IMG0923181600.BMP'); se = strel('line',11,90); I2 = imopen(I,se); imshow(I); title('Original'); figure;

imshow(I2); title('Opened'); 得到图像:

4. 实现图像的闭运算处理

I=imread('C:\\Documents

Settings\\Administrator\\桌\\IMG0923181600.BMP');

se = strel('line',11,90); I2 = imclose(I,se); imshow(I); title('Original'); figure;

imshow(I2); title(' Closed'); 得到图像:

and 面

四、 实验分析

1. 不同的形态学操作获取的结果有何区

别?什么时候使用什么操作?

答:腐蚀可以用来消除小且无意义的物

1体;膨胀可以用来填补小的孔洞;开运算:○

通常用来消除小的对象物、在纤细点处分离物体,平滑较大物体的边界的同时并不明显改变

2在粘连目标的分离及背景噪声(椒其体积,○

盐噪声)的去处方面有较好的效果;闭运算:1通常用来填充目标内细小孔洞,○连接断开的邻近目标、平滑其边界的同时并不明显改变其

2在去除图像前景噪声(砂眼噪声)方面有较好的应用。 面积,○

2. 所使用的结构变化时,所获取的结果有何差别?

答:在作开运算时,采用圆形结构元素可以磨光矩形内边缘,可以使图像的尖角转化为背景;在作闭运算时,当结构元素选择过小的情况下,会使得目标图像内部大的空洞不能被填充上,而结构元素过大又会造成粒子连接的结果。

实验总结

本次实验的目的就是对图像进行基本的压缩处理和数学形态学处理。在进行图像的压缩处理时,我运用的是离散余弦变换进行JEPG图像文件的压缩,在对图像压缩处理的过程中需要注意的是要将原图像转为双精度数据类型,并产生二维DCT变换矩阵,这样更好的完成图像的压缩。其次就是图像的数学形态学处理,在老师的指导下,我分别运用垂直线型和椭圆状的元素结构对图像进行了膨胀、腐蚀、开运算和闭运算,实现了图像的数学形态学处理。

经过了本次实验,在了解数学形态学的图像处理功能的基础上完成了相关函数指令的学习和实际操作运用,掌握了不同元素结构下的图像膨胀、腐蚀等处理函数,这是本次实验最大的收获,因为以前一直以为数学形态学不会运用到图像的处理上。

本文来源:https://www.bwwdw.com/article/3lf8.html

Top