matlab 数字图像处理实验报告(五份)

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

《数字图像处理实验报告》
实验一图像的增强
一.实验目的
1.熟悉图像在MATLAB下的读写、输出;
2.熟悉直方图;
3.熟悉图像的线性指数等;
4.熟悉图像的算术运算和几何变换。

二.实验仪器
计算机、MATLAB软件
三.实验原理
图像增强是指根据特定的需要突出图像中的重要信息,同时减弱或去除不需要的信息。

从不同的途径获取的图像,通过进行适当的增强处理,可以将原本模糊不清甚至根本无法分辨的原始图像处理成清晰的富含大量有用信息的可使用图像。

其基本原理是:对一幅图像的灰度直方图,经过一定的变换之后,使其成为均匀或基本均匀的,即使得分布在每一个灰度等级上的像素个数.f=H等或基本相等。

此方法是典刑的图像空间域技术处理,但是由于灰度直方图只是近似的概率密度函数,因此,当用离散的灰度等级做变换时,很难得到完全平坦均匀的结果。

频率域增强技术频率域增强是首先将图像从空间与变换到频域,然后进行各种各样的处理,再将所得到的结果进行反变换,从而达到图像处理的目的。

常用的变换方法有傅里叶变换、DCT变换、沃尔什-哈达玛变换、小波变换等。

假定原图像为f(x,y),经傅立叶变换
为F(u,v)。

频率域增强就是选择合适的滤波器H(u,v)对F(u,v)的频谱成分进行处理,然后经逆傅立叶变换得到增强的图像。

四.实验内容及步骤
1.图像在MATLAB下的读写、输出;
实验过程:
>> I = imread('F:\image\624baf9dbcc4910a.jpg');
figure;imshow(I);title('Original Image');
text(size(I,2),size(I,1)+15, ...
'IMG_20170929_130307.jpg', ...
'FontSize',7,'HorizontalAlignment','right');
Warning: Image is too big to fit on screen; displaying at 25% > In imuitools\private\initSize at 86
In imshow at 196
Original Image
2.给定函数的累积直方图。

>> clear all;
close all;
>> r=127;
x=-r:r+1;
sigma=20;
y1=exp(-((x-80).^2)/(2*sigma^2));
y2=exp(-((x+80).^2)/(2*sigma^2));
y=y1+y2; %双峰高斯函数,任意函数都可以
%im=imread('bg.bmp'); %匹配一个图像的直方图
%y=imhist(im);
y=y/sum(y); %归一化,使函数符合概率分布的sum(y)==1这样一个规律
plot(y); %待匹配的直方图
G=[]; %函数的累积直方图
for i=1:256
G=[G sum(y(1:i))];
end
3.图像及直方图显示
i=imread('F:\image\-4774acd1883b1d3e.jpg');
k=rgb2gray(i);
subplot(1,2,1);imshow(i);
subplot(1,2,2);imhist(k,64);
100
200
五.实验分析
通过以上一系列的图片可以看出,低通滤波器可以抑制图像噪声,改善图像质量,高通滤波器可以突出图像的边界。

图像处理的过程是一个将多种算法综合运用的过程,任何单独算法都不是完美的,多种算法的结合才能够相互取长补短从而弥补不足,达到更好的处理效果。

本软件的开发基于这一思路,将各个普通的图像处理功能集成到软件后台,并对其进行了区间优化和连接融合,部分原函数被适当改写,使其能够用于极端恶劣条件下目标的清晰显现和准确定位。

实验二图像变换
一.实验目的
1.了解正交变换的基本概念;
2.掌握图像的离散傅里叶及余弦;
3.熟悉图像的沃什变换和哈德曼变换。

二.实验仪器
计算机、MATLAB软件
三.实验原理
为了有效地和快速地对图像进行处理和分析,常常需要将原定义在图像空间的图像以某种形式转换到另外一些空间,并利用在这些空间是的特有的性质方便地进行一定的加工,最后在转换回图像空间以得到所需要的效果。

这种使图像处理简化的方法通常是对图像进行变换。

四.实验内容及步骤
1.二值图像的傅里叶变换
代码如下:
f=zeros(30,30);
f(5:24,13:17)=1;
subplot(2,2,1);imshow(f,'notruesize');
xlabel('(a)创建的二值图像');
F=fft2(f);
-
subplot(2,2,2);mesh(fftshift(abs(F))); xlabel('(b)频谱图'); F1=fftshift(log(abs(F)));
subplot(2,2,3);imshow(F1,[-1,5],'notruesize'); xlabel('(c)未填充频谱图'); colormap(jet);colorbar; F=fft2(f,256,256);
subplot(2,2,4);imshow(fftshift(log(abs(F))),[-1,5]); xlabel('(d)填充后频谱图') colormap(jet);colorbar; (2
1)运行结果如下:
(a)创建的二值图像
40
(b)频谱图
(c)未填充频谱图
24(d)填充后频谱图
2
4
2.离散余弦变换
- 代码如下:
I=imread('rice.png');
subplot(2,2,1);imshow(I);
xlabel('(a)原始图像');
J=dct2(I);
subplot(2,2,2);imshow(log(abs(J)),[]);
colormap(jet(64)),colorbar;
xlabel('(b)余弦变换');
J(abs(J)<10)=0;
k=idct2(J);
subplot(2,2,3);imshow(k,[0 255]);
xlabel('(c)逆余弦变换');
A=im2double(I);
D=dctmtx(size(A,1));
dct=D*A*D';
subplot(2,2,4);imshow(dct);
xlabel('(d)dctmtx变换');
(a)原始图

(b)余弦变换
-5
5
10
(c)逆余弦变换
(d)dctmtx变

2)真彩图像的余弦变换
RGB=imread('F:\Program Files (x86)\image\2.jpg'); figure(1);
imshow(RGB);
GRAY=rgb2gray(RGB);
figure(2);
imshow(GRAY);
DCT=dct2(GRAY);
figure(3);
imshow(log(abs(DCT)),[]);
运行结果如下:
3.图象的沃尔什-哈达玛变换
(1)图像变换的代码如下:
I=zeros(2.^8);
I(2.^7-2.^4+1:2.^7+2.^4,2.^7-2.^4+1:2.^7+2.^4)=ones(2*2.^4) ;
figure(1)
colormap(gray(128)),imagesc(I);
[m,n]=size(I)
for k = 1:n
wht(:,k)=hadamard(m)*I(:,k)/m;
end
for j = 1:m
wh(:,j)=hadamard(n)*wht(j,:)'/n;
end
wh=wh';
figure(2)
colormap(gray(128)),imagesc(wh);
(2)运行结果如下:
50
100
150
200
250
50100150200250
50
100
150
200
250
50
100
150
200
250
五.结果分析
二维离散傅里叶变换 (two-dimensional dis-Crete Fourier transform)是一种数字变换方法
对原始图像进行离散余弦变换,由结果可知,变换后DCT 系数能量主要集中在左上角,其余大部分系数接近于零,这说明DCT 具有适用于图像压缩的特性。

将变换后的DCT 系数进行门限操作,将小于一定值得系数归零,这就是图像压缩中的量化过程,然后进行逆DCT 运算,得到压缩后的图像,比较变换前后的图像,肉眼很难分辨出有什么区别,可见压缩的效果比较理想。

实验三图像的复原
一.实验目的
1.加深图像复原的相关原理、熟悉相关算法;
2.能够产生运动模糊图像,加入高斯和椒盐噪声,并对加深图像进行中值、均值、最大值、最小值进行滤波复原;
3.对彩色图像RGB转换到HIS,并显示对应分量,同时完成相关平滑滤波。

二.实验仪器
计算机、MATLAB软件
三.实验原理
编写空域滤波对加噪图像进行复原的程序先读入图像,然后为该图像加噪实现均值滤波复原(算术均值、几何均值、谐波均值、逆谐波均值)实现顺序统计滤波复原(中值、最大值、最小值、中点、阿尔法均值)最后比较滤波和噪声类型的关系顺序统计滤波器对于脉冲(盐和胡椒)噪声有效。

中值滤波器在相同尺寸下,比起均值滤波器引起的模糊少 Pa =Pb =0.1的脉冲噪声3×3的中值滤波器,第二次中值滤波器处理,第三次中值滤波器处理,全部噪声消除。

最大值滤波器发现图像中亮点用于消除“胡椒”最小值滤波器,发现图像中暗点用于消除“盐”最小值滤波器处理,最大值滤波器处理“胡椒”噪声干扰图像“盐”噪声干扰图像。

中点滤波器结合了顺序统计和求平均的特点对高斯和均匀分布的噪声效果最好,修正后阿尔法均值滤波器(Alpha-trimmed mean filter)假设在Sxy邻域内去掉 g(s,t)
中 d/2个最高灰度值和d/2个最低灰度值,用gr(s,t)表示剩余的mn-d个像素。

0<d<mn-1 d=0 算术均值滤波器 d=(mn-1)/2 中值滤波器,处理包括多种噪声混合情况。

四.实验内容及步骤
1.
原始图片
f=imread('rice.png');
figure(1);imshow(f);
title('原始图像');
g=imnoise(f,'salt & pepper',0.2);
figure(2);imshow(g);
title('椒盐噪声污染的的');
g1=double(g)/225;
j1=medfilt2(g1,'symmetric');
figure(3);imshow(j1);
title('中值滤波图像');
j2=ordfilt2(g1,median(1:3*3),ones(3,3),'symmetric');
-
figure(4);imshow(j2); title('中点滤波图像'); j3=ordfilt2(g1,1,ones(3,3)); figure(5);imshow(j3); title('最小值滤波图像'); j4=ordfilt2(g1,9,ones(3,3)); figure(6);imshow(j4); title('最大值滤波图像');
中值滤波图像
椒盐噪声污染的图像
中点滤波图像最小值滤波图像
-
C=imread('tissue.png');
subplot(1,2,1);
imshow(C);LEN=(30);
THETA=45;PSF=fspecial('motion',LEN,THETA);
MF=imfilter(C,PSF,'circular','conv');
subplot(1,2,2), imshow(MF);
imwrite(MF,tissue-MF.jpg');
F=ch eckerboard(8);
figure(1);
最大值滤波图像
imshow(F,[]);
PSF=fspecial('motion',7,45);
MF=imfilter(F,PSF,'circular');
noise=imnoise(zeros(size(F)),'gaussian',0,0.001);
MFN=MF+noise;
figure(2);
imshow(MFN,[]);
NSR=sum(noise(:).^2)/sum(MFN(:).^2);
imshow(deconvwnr(MFN,PSF),[]);
figure(4);
imshow(deconvwnr(MFN,PSF,NSR),[]);
五.实验分析
图像在获取过程中,由于成像系统的非线性、飞行器的姿态变化
等原因,成像后的图像与原景物图像相比,会产生比例失调,甚至扭曲。

以上图像退化现象称之为几何失真有几何畸变的图像,不但视觉效果不好,而且在对图像进行定量分析时提取的形状、距离、面积等数据也不准确。

几何失真校正典型的几何失真系统失真光学系统、电子扫描系统失真而引起的斜视畸变、枕形、桶形畸变等,都可能使图像产生几何特性失真。

通过该图像加噪实现均值滤波复原。

实验四图像的绘制与分割
一.实验目的
1.了解图像分割的基本概念;
2.掌握阈值分割和边缘点检测的方法;
3.对检测的目标图像提取特征并进行特征分析。

二.实验仪器
计算机、MATLAB软件
三.实验原理
matlab实现边缘检测和图像分割提供了很多有用的图像处理函数,做图像分割方法有很多,例如:基于阈值的方法,基于边缘的方法,基于区域的方法,基于凸轮的方法以及基于能量泛函的方法。

其中matlab里面有很多做边缘检测的算法,最常用的是sobel,prewitte算法,通过该算子与图像的卷积运算,即可检测到图像边缘,进一步分割目标区域。

图像分割是计算机图像处理的一个基本问题,是进行许多后续图像分析任务的先行步骤。

图像识别、图像可视化和基于目标的图像压缩都高度依赖图像分割的结果。

因此,图像分割一是一种重要的图像技术。

四.实验内容及步骤
1.图像的边缘检测
(1)源代码如下:
- I=imread(“cameraman.tif”);
J1=edge(I,”sobel”);
J2=edge(I,”prewitt”);
J3=edge( I,’log’);
subplot(1,4,1),imshow(I);
subplot(1,4,2),imshow(J1);
subplot(1,4,3),imshow(J2);
subplot(1,4,4),imshow(J3);
Log边缘算子:
Fid=fopen(“lena.img”,”r”);
Im=(fread(fid,[256,256],”uint8”));
Im=im2double(uint8(im));
Im_R=edge(im,”Roberts”);
Im_P=edge(im,”Prewitt”);
Im_S=edge(im,”Sobel”);
Im_L=edge(im,”Log”);
Colormap(gray);
subplot(321),imgshow(im);title(“源图像”);
subplot(323),imgshow(im_R);title(“Roberts检测”);
subplot(324),imgshow(im_P);title(“Prewitt检测”);
subplot(325),imgshow(im_S);title(“Sobel检测”);
subplot(326),imgshow(im_L);title(“Log检测”);
-
(2)运行结果如下:
原始图像Sobel边缘算子
Prewit边缘算子Log边缘算子
2.迭代式阈值选择法
(1)源代码如下:
f=imread('cameraman.tif');
>> subplot(1,2,1)
imshow(f);
>> title('原始图像');
>> f=double(f);
>> T=(min(f(:))+max(f(:)))/2;
>> done=false;
>> i=0
while~done
f1=find(f<=T);
i = 0
- f2=find(f>T);
Tnew=(mean(f(f1))+mean(f(f2)))/2
done=abs(Tnew-T)<1
T=Tnew;
i=i+1;
end
f(f1)=0;
Tnew =110.5153
done = 0
Tnew = 96.9893
done =
Tnew =90.4259
done =0
Tnew =88.9935
done =0
Tnew = 88.5388
done =1
f(f2)=1;
>> subplot(1,2,2)
imshow(f);
title('迭代阙值二值化图像');
(2)源代码如下:
3:图像二值化
f=imread('gantrycrane.png')
subplot(2,2,1)
imshow(f)
title('原图')
T=graythresh(f)
g=im2bw(f,T)
subplot(2,2,2);
imshow(g);
title('Otsu方法二值化图像');
原图Otsu方法二值化图像
f=imread('pillsetc.png')
subplot(2,2,1)
imshow(f)
title('原图')
T=graythresh(f)
g=im2bw(f,T)
subplot(2,2,2);
imshow(g);
title('Otsu方法二值化图像');
原图Otsu方法二值化图像
五.实验分析
本文从原理和应用效果上对经典的图像分割方法如边缘检测、阈值分割技术和区域增长等进行了分析。

对梯度算法中的Roberts算子、Sobel算子、Prewitt算子、拉普拉斯(Laplacian)算子、LoG(Laplacian-Gauss)算子、坎尼(Canny)算子的分割步骤、分割方式、分割准则相互比较可以看出根据坎尼(Canny)边缘算子的3个准则得出的边缘检测结果最满意。

而阈值分割技术的关键在于阈值的确定,只有阈值确定好了才能有效的划分物体与背景,但这种方法只对于那些灰度分布明显,背景与物体差别大的图像的分割效果才明显。

区域增长的基本思想是将具有相似性质的像素集合起来构成新区域。

实验五形态学图像处理
一.实验目的
1.了解数学形态学的基本概念;
2.熟悉常用的结构元素;
3.掌握腐蚀、膨胀以及开闭运算。

二.实验仪器
计算机、MATLAB软件
三.实验原理
数学形态学是当前应用相当广泛的图象处理技术,叙述了数学形态学的基本概念和基本原理,在基础上基础上利用数学形态方法进行了二值图象处理的计算机模拟实验。

数学形态学是分析几何形状和结构的数学方法,是建立在集合代数基础上,用集合论方法定量描述几何结构的科学。

数学形态学是一组形态学的代数运算子组成。

用这些算子及其组合进行图象形状和结构的分析处理包括图象分割、特征抽取、边缘检测等方面的工作。

腐蚀是把结构元素B平移a后得到Ba,若Ba包含于X,我们记下这个a点,所有满足上述条件的a点组成的集合称做X被B腐蚀的结果。

用公式表示为:E(X)={a| Ba∈X}=XθB。

膨胀可以认为是腐蚀的对偶运算,其定义是:把结构元素B平移a后得到Ba,若Ba击中X,我们记下这个a点,所有满足上述条件的a点组成的集合称做X被B膨胀的结果。

用公式表示为:
D(X)={x|B[x]∩x≠ф} =X⊕B 。

在数学形态学中,最为重要的两个组合运算是形态学开运算和闭运算。

我们可以利用腐蚀和膨胀来定义开运算和闭运算。

先腐蚀后膨胀称为开运算,即OPEN(X)=D(E(X)) 。

开运算可以消除散点和毛刺即对图像进行平滑。

先膨胀后腐蚀称为闭运算,即CLOSE(X)=E(D(X)) 通过选择适当的元素结构可以通过闭运算将两个邻近的目标连接起来。

开运算使图像变小,闭运算使图像增大。

开闭运算有一个有趣的性质等幂性,它意味着一次滤波就能把所有特定于结构元素的噪声滤除干净,重复运算不会再有效果。

这与经典方法(如中值滤波,线性卷积)不同。

四.实验内容及步骤
1.数学形态学的定义和分类
数学形态学是以形态结构元素为基础对图像进行分析的数学工具。

它的基本思想是用具有一定形态的结构元素去度量和提取图像中的对应形状以达到对图像分析和识别的目的。

数学形态学的应用可以简化图像数据,保持它们基本的形状特征,并除去不相干的结构。

数学形态学的基本运算有4个:膨胀、腐蚀、开启和闭合。

它们在二值图像中和灰度图像中各有特点。

基于这些基本运算还可以推导和组合成各种数学形态学实用算法。

2.常用结构元素
数学形态学是一门建立在集合理论、积分几何和网格代数基础上的学科,基本思想是用具有一定形态的结构元素去度量和提取图像中
的对应形状,以达到图像分析和识别的目的。

所获得的关于图像结构的信息与结构元素的尺寸和形状都有关系,构造不同的结构元素,便可以得到不同的结果,完成不同的图像分析。

目前,选取结构元素形状和尺寸通常的做法是依据经验和估算,采用这种方式需要经验和人工干预,通常难以取得较好的处理效果。

怎样选择结构元素形状,如何较为精确地计算结构元素尺寸是需要解决的问题。

(1)开运算和闭运算
用结构元素B 对集合A 做开运算,记为:A 莓B,A 莓B =(A ΘB )茌B
1)用结构元素B 对集合A 做开运算就是先用B 对A 进行腐蚀,再用B 对结果进行膨胀。

用结构元素B 对集合A 做闭运算,记为:A ·B·A B =(A ΘB )茌B
2)用结构元素B 对集合A 做闭运算就是先用B 对A 进行膨胀,再用B 对结果进行腐蚀。

(2)形态学运算的基本性质
互换性:
A 茌
B =B 茌A
(3)形态学基本运算
形态学的基本运算包括腐蚀、膨胀、开运算和闭组合性:
A 茌(
B 茌
C )=(A 茌B )茌C
A Θ(
B 茌
C )=A ΘB ΘC
(4)腐蚀运算表示用某种结构元素对图像进行探测,找出在图像内部可以放下该结构元素的区域。

膨胀是腐蚀的对偶运算,可以定义为对图像的补集进行腐蚀运算。

将腐蚀和膨胀进行组合就形成了另外两个重要的形态学运算,开运算和闭运算。

开闭运算的等幂性:
(A ···B )B=AB
(A 莓B )莓B=A莓B
(5)开、闭运算的等幂性意味着一次滤波就能把所有特定结构的几何形状滤除干净,做重复的运算不会再有效果,这是一个与经典方法(例如中值滤波、线性卷积)不同的性质。

由于开闭运算的等幂性,结构元素的形状和大小决定了形态学图像分析的性能。

3代码及结果如下
>> I=imread('F:\image\-4774acd1883b1d3e.jpg');
se=strel('disk',5,4);
J1=imerode(I,se);
J2=imopen(I,se);
J3=imclose(I,se);
subplot(2,2,1),imshow(I),xlabel('a) 原图');
subplot(2,2,2),imshow(J1),xlabel('b) 腐蚀');
subplot(2,2,3),imshow(J2),xlabel('c) 开运算');
subplot(2,2,4),imshow(J3),xlabel('d) 闭运算');
>>
a) 原图b) 腐蚀
c) 开运算d) 闭运算
五.实验分析
数学形态学是以形态结构元素为基础对图像进行分析的数学工具。

它的基本思想是用具有一定形态的结构元素去度量和提取图像中的对应形状以达到对图像分析和识别的目的。

数学形态学的应用可以简化图像数据,保持它们基本的形状特征,并除去不相干的结构。

数学形态学的基本运算有4个:膨胀、腐蚀、开启和闭合。

它们在二值图像中和灰度图像中各有特点。

基于这些基本运算还可以推导和组合成各种数学形态学实用算法。

相关文档
最新文档