数字图像处理实验.docx

上传人:b****8 文档编号:11011056 上传时间:2023-02-24 格式:DOCX 页数:31 大小:1.92MB
下载 相关 举报
数字图像处理实验.docx_第1页
第1页 / 共31页
数字图像处理实验.docx_第2页
第2页 / 共31页
数字图像处理实验.docx_第3页
第3页 / 共31页
数字图像处理实验.docx_第4页
第4页 / 共31页
数字图像处理实验.docx_第5页
第5页 / 共31页
点击查看更多>>
下载资源
资源描述

数字图像处理实验.docx

《数字图像处理实验.docx》由会员分享,可在线阅读,更多相关《数字图像处理实验.docx(31页珍藏版)》请在冰豆网上搜索。

数字图像处理实验.docx

数字图像处理实验

 

《数字图像处理》

实验报告

 

学院:

信息工程学院

专业:

电子信息工程

学号:

姓名:

 

2015年6月18日

实验一图像的读取、存储和显示……………………………………………………2

实验二图像直方图分析………………………………………………………………6

实验三图像的滤波及增强……………………………………………………………15

实验四噪声图像的复原………………………………………………………………19

实验五图像的分割与边缘提取……………………………………………………23

附录1MATLAB简介…………………………………………………………………27

 

实验一图像的读取、存储和显示

一、实验目的与要求

1.熟悉及掌握在MATLAB中能够处理哪些格式图像。

2.熟练掌握在MATLAB中如何读取图像。

3.掌握如何利用MATLAB来获取图像的大小、颜色、高度、宽度等等相关信息。

4.掌握如何在MATLAB中按照指定要求存储一幅图像的方法。

5.图像的显示。

二、实验原理

一幅图像可以被定义为一个二维函数f(x,y),其中x和y是空间(平面)坐标,f在任何坐标处(x,y)处的振幅称为图像在该点的亮度。

灰度是用来表示黑白图像亮度的一个术语,而彩色图像是由单个二维图像组合形成的。

例如,在RGB彩色系统中,一幅彩色图像是由三幅独立的分量图像(红、绿、蓝)组成的。

因此,许多为黑白图像处理开发的技术适用于彩色图像处理,方法是分别处理三副独立的分量图像即可。

图像关于x和y坐标以及振幅连续。

要将这样的一幅图像转化为数字形式,就要求数字化坐标和振幅。

将坐标值数字化成为取样;将振幅数字化成为量化。

采样和量化的过程如图1所示。

因此,当f的x、y分量和振幅都是有限且离散的量时,称该图像为数字图像。

三、实验设备

(1)PC计算机

(2)MatLab软件/语言包括图像处理工具箱(ImageProcessingToolbox)

(3)实验所需要的图片

四、实验内容及步骤

1.利用imread()函数读取一幅图像,假设其名为flower.tif,存入一个数组中;

2.利用whos命令提取该读入图像flower.tif的基本信息;

3.利用imshow()函数来显示这幅图像;

4.利用imfinfo函数来获取图像文件的压缩,颜色等等其他的详细信息;

5.利用imwrite()函数来压缩这幅图象,将其保存为一幅压缩了像素的jpg文件设为flower.jpg语法:

imwrite(原图像,新图像,‘quality’,q),q取0-100。

6.同样利用imwrite()函数将最初读入的tif图象另存为一幅bmp图像,设为flower.bmp。

7.用imread()读入图像:

Lenna.jpg和camema.jpg;

8.用imfinfo()获取图像Lenna.jpg和camema.jpg的大小;

9.用figure,imshow()分别将Lenna.jpg和camema.jpg显示出来,观察两幅图像的质量。

10.用im2bw将一幅灰度图像转化为二值图像,并且用imshow显示出来观察图像的特征。

11.将每一步的函数执行语句拷贝下来,写入实验报告,并且将得到第3、9、10步得到的图像效果拷贝下来。

五、实验源程序

clc;clear;closeall;

I=imread('D:

\picture\flower.tif');%读入原图像,tif格式

whosI;%显示图像I的基本信息

imfinfo('D:

\picture\flower.tif');

imwrite(I,'D:

\picture\flower.jpg','quality',50);

imwrite(I,'D:

\picture\flower.bmp');%以位图(BMP)的格式存储图像

g=im2bw(I);%将图像转为二值图像

imwrite(g,'D:

\picture\flower1.tif');

subplot(2,2,1),imshow(I),title('原图(tif格式)');

subplot(2,2,2),imshow('D:

\picture\flower.jpg'),title('压缩图(jpg格式)');

subplot(2,2,3),imshow('D:

\picture\flower.bmp'),title('位图(BMP格式)');

subplot(2,2,4),imshow(g),title('二值图');

六、实验结果

 

11、实验心得

通过本次实验可以熟练的运用MATLAB编程软件。

 

实验二图像直方图分析

一.实验目的

1.了解MATLAB的操作环境和基本功能。

2.掌握MATLAB中图像增强与平滑的函数的使用方法。

3.加深理解图像增强与平滑的算法原理。

二、实验内容

(一)研究以下程序,分析程序功能;输入执行各命令行,认真观察命令执行的结果。

熟悉程序中所使用函数的调用方法,改变有关参数,观察试验结果。

(可将每段程序保存为一个.m文件)

1.直方图均衡化

2.直接灰度变换

3.空域平滑滤波(模糊、去噪)

4.空域锐化滤波

(二)采用MATLAB底层函数编程实现

1.灰度变换之动态范围扩展

假定原图像f(x,y)的灰度范围为[a,b],希望变换后图像g(x,y)的灰度范围扩展至[c,d],则线性变换可表示为:

用MATLAB底层函数编程实现上述变换函数。

观察图像‘pout.tif’的灰度直方图,选择合适的参数[a,b]、[c,d]对图像‘pout.tif’进行灰度变换,以获得满意的视觉效果。

2.非锐化掩蔽和高斯滤波

从原图像中减去其非锐化(平滑过的)图像的过程称为非锐化掩蔽,其基本步骤为:

对原图像进行平滑滤波得到模糊图像

从原图像中减去模糊图像,产生的差值图像称为模板

将模板加到原图像上,得到锐化后的图像

即,

用MATLAB函数编程实现上述功能。

三、实验设备与软件

1.计算机;

2.MATLAB6.5及以上;

四、实验源程序

(一)

1.直方图均衡化

clc;clearall;closeall

I=imread('pout.tif');

subplot(2,3,1);

imshow(I);

title('原图');

subplot(2,3,2);

imhist(I);%显示原图的直方图

title('原图的直方图');

[I2,T]=histeq(I);%原图进行均衡化

subplot(2,3,3);

imshow(I2);%显示均衡化后图

title('均衡化后的图');

subplot(2,3,4);

imhist(I2);%显示原图均衡化后的直方图

title('原图均衡化后的直方图');

subplot(2,3,5);

plot((0:

255)/255,T);%绘制均衡化函数图

title('均衡化函数图');

imwrite(I2,'D:

\picture1\pout.png');

imfinfo('D:

\picture1\pout.png')%显示写入图的信息

2.直接灰度变换

clc;clearall;closeall

I=imread('cameraman.tif');

subplot(2,3,1),imshow(I),title('原图(cameraman)');

J=imadjust(I,[00.2],[0.51]);

subplot(2,3,2),imshow(J),title('图cameraman调整灰度值后的图');

[X,MAP]=imread('forest.tif');%X为图像数据矩阵,MAP为颜色表数据矩阵

subplot(2,3,3),imshow(X,MAP),title('原图(forest)');

I2=ind2gray(X,MAP);

J2=imadjust(I2,[],[],0.5);

J3=imadjust(I2,[],[],1.5);

subplot(2,3,4),imshow(I2),title('forest的灰度图');

subplot(2,3,5),imshow(J2),title('forest调整图像灰度值后明亮输出的图');

subplot(2,3,6),imshow(J3),title('forest调整图像灰度值后灰暗输出的图');

3.空域平滑滤波(模糊、去噪)

clc;clearall;closeall

I=imread('eight.tif');

h1=ones(3,3)/9;

h2=ones(5,5)/25;

I1=imfilter(I,h1);%用3*3的方阵(元素值为0.11)过滤原图

I2=imfilter(I,h2);%用5*5的方阵(元素值为0.04)过滤原图

figure

(1);

subplot(2,2,1),imshow(I),title('原图');

subplot(2,2,2),imshow(I1),title('用3*3的方阵(元素值为0.11)过滤原图');

subplot(2,2,3),imshow(I2),title('用5*5的方阵(元素值为0.04)过滤原图');

J1=imnoise(I,'gaussian',0,0.005);%加入高斯(Gaussian)噪声

J2=imnoise(I,'salt&pepper',0.02);%加入椒盐噪声

K1=imfilter(J1,fspecial('average',3));%对J1进行平均值平滑滤波

K2=imfilter(J2,fspecial('average',3));%对J2进行平均值平滑滤波

figure

(2);

subplot(2,2,1),imshow(J1),title('加入高斯噪声');

subplot(2,2,2),imshow(J2),title('加入椒盐噪声');

subplot(2,2,3),imshow(K1),title('对加入高斯噪声的图进行平均值平滑滤波');

subplot(2,2,4),imshow(K2),title('对加入椒盐噪声的图进行平均值平滑滤波');

K3=medfilt2(J1,[33]);%对J1进行中值滤波

K4=medfilt2(J2,[33]);%对J2进行中值滤波

figure(3);

subplot(2,2,1),imshow(J1),title('加入高斯噪声');

subplot(2,2,2),imshow(J2),title('加入椒盐噪声');

subplot(2,2,3),imshow(K3),title('对加入高斯噪声的图进行中值滤波');

subplot(2,2,4),imshow(K4),title('对加入椒盐噪声的图进行中值滤波');

4.空域锐化滤波

clc;clearall;closeall

I=imread('moon.tif');

w=fspecial('laplacian',0);%拉普拉斯算子

w1=[1,1,1;1,-8,1;1,1,1];%新算子(w1)

I1=imfilter(I,w,'replicate');%拉普拉斯算子对原图锐化滤波

subplot(2,4,1),imshow(I),title('原图');

subplot(2,4,2),imshow(I1),title('拉普拉斯算子对原图锐化滤波图');

f=im2double(I);%把原图的数据类型转换为双精度浮点类型(图不变)

f1=imfilter(f,w,'replicate');%拉普拉斯算子对图f锐化滤波

subplot(2,4,4),imshow(f1,[]),title('拉普拉斯算子对f锐化滤波图');

f2=imfilter(f,w1,'replicate');%新算子(w1)对图f锐化滤波

subplot(2,4,5),imshow(f1,[]),title('新算子(w1)对f锐化滤波图');

f4=f-f1;%图f减去其锐化滤波(拉普拉斯算子)后的图

f8=f-f2;%图f减去其锐化滤波(新算子(w1))后的图

subplot(2,4,3),imshow(f),title('原图的数据类型变为双精度浮点型即图f');

subplot(2,4,6),imshow(f4),title('图f减去其锐化滤波(拉普拉斯算子)后的图');

subplot(2,4,8),imshow(f8),title('图f减去其锐化滤波(新算子(w1))后的图');

(二)

1.灰度变换之动态范围扩展

clc;clearall;closeall

I=imread('pout.tif');%数据为240行16列的矩阵

subplot(2,2,1),imshow(I),title('原图(pout)');

I1=double(I)./double(100);%对原图数据进行处理

J=0.625.*(I1-0.1)+0.4;%a=0.1,b=0.9,c=0.4,d=0.9调整原图的灰度值——变明亮

subplot(2,2,2),imshow(J),title('图pout调整灰度值后的图');

subplot(2,2,3),imhist(I1),title('原图的直方图');%显示原图的直方图

subplot(2,2,4),imhist(J),title('pout调整灰度值后的直方图');%显示pout调整灰度值后的直方图

2.非锐化掩蔽和高斯滤波

clc;clearall;closeall

I=imread('pout.tif');

J=imfilter(I,fspecial('average',3));%对I进行平均值平滑滤波

subplot(2,2,1),imshow(I),title('原图');

subplot(2,2,2),imshow(J),title('对原图进行平均值平滑滤波得到模糊图像J');

M=I-J;%从原图像I中减去模糊图像J,产生的差值图像M称为模板

N=30*M+I;%将模板M加到原图像I上,得到锐化后的图像N

subplot(2,2,3),imshow(M),title('I减J产生的差值图像M');

subplot(2,2,4),imshow(N),title('M的30倍加I得到的锐化后的图像N');

五、实验结果

(一)

1.直方图均衡化

 

3.直接灰度变换

对于’imadjust(I,[low_inhigh_in],[low_outhigh_out],gamma)’函数,gamma大于1图像比原图像增强,小于1,灰度比图像小,有模糊感,图像不够清晰.

3.空域平滑滤波(模糊、去噪)

4.空域锐化滤波

使用空域滤波使图像对比度增大,并且w8=[1,1,1;1,-8,1;1,1,1]算子增强效果更明显

(二)

1灰度变换之动态范围扩展

 

2.非锐化掩蔽和高斯滤波

六.实验心得

通过本次实验对高斯噪声与椒盐噪声有了更清楚的认识,也学会如何用平滑滤波,锐化滤波,高斯滤波处理图像,学到了很多新知识.

实验三图像的滤波及增强

一、实验目的

1进一步了解MatLab软件/语言,学会使用MatLab对图像作滤波处理,使学生有机会掌握滤波算法,体会滤波效果。

2了解几种不同滤波方式的使用和使用的场合,培养处理实际图像的能力,并为课堂教学提供配套的实践机会。

3熟悉傅立叶变换的基本性质;

4熟练掌握FFT变换方法及应用;

二、实验内容与步骤

(1)模板滤波

a)调入并显示原始图像Sample2-1.jpg。

b)利用imnoise命令在图像Sample2-1.jpg上加入高斯(gaussian)噪声

c)利用预定义函数fspecial命令产生平均(average)滤波器

d)分别采用3x3和5x5的模板,分别用平均滤波器以及中值滤波器,对加入噪声的图像进行处理并观察不同噪声水平下,上述滤波器处理的结果;

e)选择不同大小的模板,对加入某一固定噪声水平噪声的图像进行处理,观察上述滤波器处理的结果。

f)利用imnoise命令在图像Sample2-1.jpg上加入椒盐噪声(salt&pepper)

g)重复c)~e)的步骤

h)输出全部结果并进行讨论。

(2)频域滤波

17.将图像内容读入内存;

18.用Fourier变换算法,对图像作二维Fourier变换;

19.将其幅度谱进行搬移,在图像中心显示;

20.用Fourier系数的幅度进行Fourier反变换;

21.用Fourier系数的相位进行Fourier反变换;

22.比较4、5的结果,评价人眼对图像幅频特性和相频特性的敏感度。

23.记录和整理实验报告。

6、实验仪器

(1)IBM-PC计算机系统

(2)MatLab软件/语言包括图像处理工具箱(ImageProcessingToolbox)

(3)实验所需要的图片

四.实验源程序

(1)模板滤波

clc;clearall;closeall

I=imread('cameraman.tif');

J=imnoise(I,'gauss',0.02);%添加高斯噪声,叠加密度为0.02

ave1=fspecial('average',3);%产生3×3的均值模板

ave2=fspecial('average',5);%产生5×5的均值模板

K=filter2(ave1,J)/255;%均值滤波3×3

L=filter2(ave2,J)/255;%均值滤波5×5

M=medfilt2(J,[33]);%中值滤波3×3模板

N=medfilt2(J,[55]);%中值滤波5×5模板

subplot(2,3,1),imshow(I);title('原图');

subplot(2,3,2),imshow(J);title('添加高斯噪声图J');

subplot(2,3,3),imshow(K);title('对J均值滤波3×3');

subplot(2,3,4),imshow(L);title('对J均值滤波5×5');

subplot(2,3,5),imshow(M);title('对J中值滤波3×3');

subplot(2,3,6),imshow(N);title('对J中值滤波5×5');

J1=imnoise(I,'salt&pepper',0.02);%添加椒盐噪声,叠加密度为0.02

K1=filter2(ave1,J1)/255;%均值滤波3×3

L1=filter2(ave2,J1)/255;%均值滤波5×5

M1=medfilt2(J1,[33]);%中值滤波3×3模板

N1=medfilt2(J1,[55]);%中值滤波5×5模板

figure

(2);

subplot(2,3,1),imshow(I);title('原图');

subplot(2,3,2),imshow(J1);title('添加椒盐噪声J1');

subplot(2,3,3),imshow(K1);title('对J1均值滤波3×3');

subplot(2,3,4),imshow(L1);title('对J1均值滤波5×5');

subplot(2,3,5),imshow(M1);title('对J1中值滤波3×3');

subplot(2,3,6),imshow(N1);title('对J1中值滤波5×5');

(2)频域滤波

clc;clearall;closeall

I=imread('cameraman.tif');%读入原图像文件

fftI=fft2(I);%二维离散傅立叶变换

sfftI=fftshift(fftI);%直流分量移到频谱中心

RR=real(sfftI);%取傅立叶变换的实部

II=imag(sfftI);%取傅立叶变换的虚部

A=sqrt(RR.^2+II.^2);%计算频谱幅值

A=(A-min(min(A)))/(max(max(A))-min(min(A)))*225;%归一化

f1=ifft2(A);%用Fourier系数的幅度进行Fourier反变换;

f2=ifft2(angle(fftI));%用Fourier系数的相位进行Fourier反变换;

subplot(2,2,2),imshow(A),title('原图像的频谱');%显示原图像的频谱

subplot(2,2,1),imshow(I),title('原图');

subplot(2,2,3),imshow(f1,[]),title('用Fourier系数的幅度进行Fourier反变换后的图');

subplot(2,2,4),imshow(f2,[]),title('用Fourier系数的相位进行Fourier反变换后的图');

 

五.实验结果

(1)模板滤波

 

(2)频域滤波

11.实验心得

通过这次实验了解了高斯噪声和椒盐噪声的特点。

高斯噪声完全由其时变平均值和两瞬时的协方差函数来确定,若噪声为平稳的,则平均值与时间无关,而协方差函数则变成仅和所考虑的两瞬时之差有关的相关函数,它在意义上等效于功率谱密度。

高斯噪声可以是大量独立的脉冲所产生的,从而在任何有限时间间隔内,这些脉冲中的每一个脉冲值与所有脉冲值的总和相比都可忽略不计。

3实际上热噪声、散弹噪声及量子噪声都是高斯噪声。

椒盐噪声是由图像传感器,传输信道,解码处理等产生的黑白相间的亮暗点噪声。

椒盐噪声往往由图像切割引起。

 

实验四噪声图像的复原

一、实验目的

 1、熟悉并掌握MATLAB图像处理工具箱的使用;

2、理解并掌握常用的图像的恢复和增强技术。

二、实验内容及步骤

1、产生运动模糊图像,运用维纳滤波进行图像恢复,显示结果。

2、利用MATLAB实现频域滤波

频域滤波分为低通滤波和高通滤波两类,对应的滤波器分别为低通滤波器和高通滤波器。

频域低通过滤的基本思想:

G(u,v)=F(u,v)H(u,v)

F(u,v)是需要钝化图像的傅立叶变换形式,H(u,v)是选取的一个低通过滤器变换函数,G(u,v)是通过H(u,v)减少F(u,v)的高频部分来得到的结果,运用傅立叶逆变换得到钝化后的图像。

理想地通滤波器(ILPF)具有传递函数:

其中,

为指定的非负数,

为(u,v)到滤波器的中心的距离。

的点的轨迹为一个圆。

n阶巴特沃兹低通滤波器(BLPF)(在距离原点

处出现截至频率)的传递函数为

与理想地通滤波器不同的是,巴特沃兹率通滤波器的传递函数并不是在

处突然不连续。

高斯低通滤波器(GLPF)的传递函数为

其中,

为标准差。

相应的高通滤波器也包括:

理想高通滤波器、n阶巴特沃兹高通滤波器、高斯高通滤波器

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 表格模板 > 合同协议

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1