matlab图像处理综合实验实验报告.doc

上传人:夺命阿水 文档编号:21375 上传时间:2022-07-12 格式:DOC 页数:28 大小:824.50KB
返回 下载 相关 举报
matlab图像处理综合实验实验报告.doc_第1页
第1页 / 共28页
matlab图像处理综合实验实验报告.doc_第2页
第2页 / 共28页
matlab图像处理综合实验实验报告.doc_第3页
第3页 / 共28页
matlab图像处理综合实验实验报告.doc_第4页
第4页 / 共28页
matlab图像处理综合实验实验报告.doc_第5页
第5页 / 共28页
点击查看更多>>
资源描述

《matlab图像处理综合实验实验报告.doc》由会员分享,可在线阅读,更多相关《matlab图像处理综合实验实验报告.doc(28页珍藏版)》请在课桌文档上搜索。

1、数字图像处理实验报告实验一实验名称:图像增强实验目的:1.熟悉图像在Matlab下的读入,输出及显示; 2.熟悉直方图均衡化; 3.熟悉图像的线性指数等; 4.熟悉图像的算术运算及几何变换.实验仪器:计算机,Matlab软件实验原理:图像增强是为了使受到噪声等污染图像在视觉感知或*种准则下尽量的恢复到原始图像的水平之外,还需要有目的性地加强图像中的*些信息而抑制另一些信息,以便更好地利用图像。图像增强分频域处理和空间域处理,这里主要用空间域的方法进展增强。空间域的增强主要有:灰度变换和图像的空间滤波。图像的直方图实际上就是图像的各像素点强度概率密度分布图,是一幅图像所有像素集合的最根本统计规律

2、,均衡化是指在每个灰度级上都有一样的像素点过程。实验容如下:I=imread(E:cs.jpg);%读取图像subplot(2,2,1),imshow(I),title(源图像)J=rgb2gray(I)%灰度处理subplot(2,2,2),imshow(J) %输出图像title(灰度图像) %在原始图像中加标题subplot(2,2,3),imhist(J) %输出原图直方图title(原始图像直方图) 几何运算:I=imread(E:cs.jpg);%读取图像subplot(1,2,1),imshow(I);theta = 30;K = imrotate(I,theta); subpl

3、ot(1,2,2),imshow(K)对数运算:I=imread(E:dog.jpg);subplot(2,2,1),imshow(I),title(源图像)J=rgb2gray(I)%灰度处理subplot(2,2,2),imshow(J),title(灰度变换后图像)J1=log(1+double(J);subplot(2,2,3),imshow(J1,),title(对数变换后)指数运算:I=imread(E:dog.jpg);f=double(I);g=(22*(f-1)-1f=uint8(f);g=uint8(g);subplot(1,2,1);subimage(f),title(变

4、换一)subplot(1,2,2);subimage(g),title(变换二)加法运算:clc;clear all;close all;i = imread(E:dog.jpg);j = imnoise(i,gaussian,0,0.02);subplot(1,3,1),imshow(i),title(图一)subplot(1,3,2),imshow(j),title(图二)k=zeros(242,308); for p=1:100 j = imnoise(i,gaussian,0,0.02); j1 = im2double(j); k = k + j1; endk=k/100;subplo

5、t(1,3,3),imshow(k),title(图三)实验二实验名称:图像变换实验目的:1进一步对matlab的了解和使用;2学习如何在matlab中对数字图像的处理;实验原理:图像和其他信号一样,既能在空间域处理,也能在频率域处理。把图像信息从空域变换到频域,可以更好的分析加工处理。因为图像信息的频域处理具有如下特点:1能量守恒,但能量重新分配;2有利于提取图像的*些特征;3正交变换具有能量集中作用,可以实现图像的高效压缩编码;4频域用快速算法;实验器材:电脑 matlab软件实验容:1了解正交变换根本概念2掌握图像的离散傅里叶和离散余弦变换3熟悉图像的沃尔什及哈达玛变换实验过程如下:傅里

6、叶变换I = imread(E:dog.jpg)I = rgb2gray(I)J = fft2(I)subplot(2,2,1),imshow(I),title(灰度变换)J = fftshift(J)subplot(2,2,2),imshow(log(abs(J),),title(傅里叶变换)J(abs(J)5000)=0subplot(2,2,3),imshow(log(abs(J)+eps),),title(滤波)J = ifftshift(J)K = ifft2(J)subplot(2,2,4),imshow(K,0 255),title(傅里叶逆变换)余弦变换:clear all;R

7、GB=imread(E:dog.jpg);I=rgb2gray(RGB);figure;imshow(I);title(灰度图像);J=dct2(I);figure;imshow(log(abs(J),);colormap(jet(64),colorbar;title(二维离散余弦变换)沃尔什哈达玛变换: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);subplot(1,2,1);colormap(gray(128),imagesc(I);m,n=size(I)for k=1:nwht(:,k)=hadamard(

8、m)*I(:,k)/m;endfor j=1:mwh(:,j)=hadamard(n)*wht(j,:)/n;endwh=wh;subplot(1,2,2);colormap(gray(128),imagesc(wh);Radon变换:R=radonI,theta:I表示待处理的图像,theta表示Radon变换的方向角度,可以是一个标量或向量值。R的每一列对应图像I在theta*祎角度的Radon变换值。I=zeros(120,120); I(25:75,25:75)=1;figure;imshow(I);theta=0:;R,*p=radon(I,theta);figure;imshow(

9、R,*data,theta,Ydata,*p,.InitialMagnification,fit)*label(theta (degrees)ylabel(*)colormap(hot),colorbariptsetpref(ImshowA*esVisible,off)实验三实验名称:图像的复原实验目的:1.加深图像复原的相关原理,熟悉相关算法; 2.能够产生运动模糊图像,参加高斯,椒盐噪声,并对噪声进展中值,均值,最大值,最小值进展滤波复原;3.对彩色图像RGB转换到HISI,并显示对应分量,同时完成相关平滑滤波。实验仪器:计算机,Matlab软件实验原理:图像复原的根本思路:先建立退化的数

10、学模型,然后根据该模型对退化图像进展拟图像复原合。图像复原模型可以用连续数学和离散数学处理,处理项的实现可在空间域卷积,或在频域相乘.图像复原的根本任务:消除模糊。图像的退化主要是由系统的相关特性以及噪声两方面的因素所导致的,我们可以通过设计一个适宜的复原滤波器即实现逆滤波过程来实现图像的复原。图1 中f*,y表示的是一幅静止、二维的图像,它在外部噪声n*,y的干扰作用之下,在经过系统h*,y之后,退化成为g*,y,复原后的图像为f*,y。针对于退化图像的复原,我们通常可以采用这样两种方式来进展:其一,当对于原始图像缺乏必需的先验知识时,我们可以采用就退化过程建立一个模型,首先对其进展一个大概

11、的描述,然后在复原的过程根据具体的情况进展逐步合理的修正,逐步消除误差影响。这种方法建立在对图像的退化过程进展合理的估计的根底之上,从这个角度来看它是一种估计的方法;其二,当我们对原始图像具有足够的先验知识时,我们这时候则直接针对原始图像建立一个准确的数学模型,然后再对退化图像进展复原处理,这种效果更好.参加噪声:I=imread(E:dog.jpg);%读取原图像%考虑是否参加灰度处理J1=imnoise(I,salt & pepper,0.02); %参加椒盐噪声J2=imnoise(I,gaussian,0,0.01);%参加高斯白噪声J3=imnoise(I,poisson);%参加泊

12、松噪声J4=imnoise(I,speckle,0.04);%参加乘法噪声figure;subplot(221),imshow(J1);title(参加椒盐噪声后图像)subplot(222),imshow(J2);title(参加高斯白噪声后图像)subplot(223),imshow(J3);title(参加泊松噪声后图像)subplot(224),imshow(J4);title(参加乘法噪声后图像)%对椒盐噪声和高斯白噪声进展imfilter滤波rgb=imread(E:dog.jpg);h=ones(5,5)/25;rgb1=imfilter(rgb,h);rgb2=imfilter

13、(rgb1,h,replicate);figure;subplot(1,3,1);imshow(rgb);title(Original);%原始subplot(1,3,2);imshow(rgb1);title(Filtered);%一维滤波subplot(1,3,3);imshow(rgb);title(boundary replication);%边缘滤波%增加运动滤波,水平边缘增强,拉普拉斯滤波rgb=imread(E:dog.jpg);h1=0,0,0.0000,0.0021,0.0042;0.1958,0.1979,0.2000,0.1979,0.1958 ;0.0042,0.002

14、1,0.0000,0,0;h2= 1,2,1;0,0,0;-1,-2,-1;h3=0.1667,0.6667,0.1667;0.6667,-3.3333,0.1667;0.1667,0.6667, 0.1667;rgb1=imfilter(rgb,h1);rgb2=imfilter(rgb,h2);rgb3=imfilter(rgb,h3);figure;subplot(2,2,1),imshow(rgb),title(原图像)subplot(2,2,2),imshow(rgb1),title(运动滤波)subplot(2,2,3),imshow(rgb2),title(水平边缘增强)subp

15、lot(2,2,4),imshow(rgb3),title(拉普拉斯滤波)%fspecial产生线性滤波器rgb=imread(E:dog.jpg);h1=fspecial(average,5,3);h2=fspecial(gaussian,5,3,1);h3=fspecial(laplacian,0);rgb1=imfilter(rgb,h1);rgb2=imfilter(rgb,h2);rgb3=imfilter(rgb,h3);figure;subplot(2,2,1),imshow(rgb),title(原图像)subplot(2,2,2),imshow(rgb1),title(均值滤

16、波)subplot(2,2,3),imshow(rgb2),title(高斯滤波)subplot(2,2,4),imshow(rgb3)I=imread(E:dog.jpg);%二值化函数的输入图像既可以是彩色图像也可以是灰度图像th=graythresh(I); %自动确定二值化的最正确阈值J=im2bw(I,th); %二值化阈值可以自己设定,值为0-1之间,而不是0-255,这一点要切记subplot(121),imshow(I); subplot(122),imshow(J);产生运动模糊图像clc;clear all;I = imread(E:dog.jpg);subplot(121

17、);imshow(I);title(原始图像);H = fspecial(motion,20,45);MotionBlur = imfilter(I,H,replicate);subplot(122);imshow(MotionBlur);title(运动模糊图像);clc;clear all;I = imread(eight.tif);J = imnoise(I,salt & pepper,0.02);K = medfilt2(J);subplot(121);imshow(J);title(参加椒盐噪声的图像);subplot(122);imshow(K);title(中值滤波的图像);cl

18、c;clear all;I = imread(snowflakes.png);MA* = ordfilt2(I,25,ones(5,5);MIN = ordfilt2(I,1,ones(5,5);subplot(221);imshow(I);title(原始图像);subplot(222);imshow(MA*);title(最大值滤波);subplot(223);imshow(MIN);title(最小值滤波);实验四实验名称:图像的检测与分割实验目的:1进一步对matlab的了解和使用;2学习如何在matlab中对数字图像的处理;实验原理:数字图像处理主要目的:一是对图像进展加工和处理,得

19、到满足人的视觉和心理需要的改变进展式。二是对图像中的目标物进展分析很理解,包括:(1) 把图像分割成不同目标物和背景的不同区域;(2) 提取正确代表不同目标物特点的特征参数,并进展扫描;(3) 对图像中目标物进展识别和分类;实验器材:电脑 matlab软件实验容:1了解图像分割的概念2掌握阈值分割及边缘点检测的根本方法3对检测目标图像提取特征并进展分析实验过程:图像分割:指的是将数字图像细分为多个图像子区域像素的集合也被称作超像素的过程,就是把图像分成假设干个特定的、具有独特性质的区域并提出感兴趣目标的技术和过程。它是由图像处理到图像分析的关键步骤。图像分割的目的是简化或改变图像的表示形式,使

20、得图像更容易理解和分析。图像分割通常用于定位图像中的物体和边界线,曲线等。更准确的,图像分割是对图像中的每个像素加标签的一个过程,这一过程使得具有一样标签的像素具有*种共同视觉特性。图像分割的结果是图像上子区域的集合这些子区域的全体覆盖了整个图像,或是从图像中提取的轮廓线的集合例如边缘检测。一个子区域中的每个像素在*种特性的度量下或是由计算得出的特性都是相似的,例如颜色、亮度、纹理。邻接区域在*种特性的度量下有很大的不同。现有的图像分割方法主要分以下几类:基于阈值的分割、区域生长、区域分裂合并、分水岭算法、边缘分割边缘检测、直方图法、聚类分析、小波变换等。(1) 阈值分割及边缘点检测的根本方法

21、阈值分割:双峰法、迭代法、OTSU方法双峰法:根据双峰法原理,观察到灰度图像直方图呈现明显的双峰状,则选取双峰之间的谷底所对应的灰度级作为阈值分割。如上图,选取160作为分割点。I=imread(E:dog.jpg);I=rgb2gray(I);imhist(I);I=imread(E:dog.jpg);I=rgb2gray(I);figuresubplot(1,2,1)imshow(I);width,height=size(I);title(原图)for i=1:widthfor j=1:heightif(I(i,j)230)RC(i,j)=0;elseRC(i,j)=1;endendend

22、subplot(1,2,2)imshow(RC)title(双峰法图像阈值分割处理效果图)直方图如下迭代法I=imread(E:dog.jpg);I=rgb2gray(I);Figure,subplot(1,2,1)imshow(I);title(原图)clc;clear all;close all;I=imread(E:dog.jpg);I=rgb2gray(I);Figure,subplot(1,2,1)imshow(I);title(原图);I=double(I);T=(min(I(:)+ma*(I(:)/2;done=false;i=0;while doner1=find(IT);Tn

23、ew=(mean(I(r1)+mean(I(r2)/2;done=abs(Tnew-T)1;T=Tnew;i=i+1;endI(r1)=0;I(r2)=1;subplot(1,2,2);imshow(I);title(迭代效果图);OTSU方法I=imread(E:dog.jpg);I=rgb2gray(I);figuresubplot(1,2,1)imshow(I);title(原图);width,height=size(I);level=graythresh(I);BW=im2bw(I,level);subplot(1,2,2)imshow(BW);title(OSTU阈值分割效果图);边

24、缘点检测:Prewitt算子检测图像的边缘、不同值的LoG算子检测图像的边缘、Canny算子检测图像的边缘I = imread(bacteria.BMP);BW1 = edge(I,prewitt,0.04); figure(1);imshow(I);figure(2);imshow(BW1);Prewitt算子检测图像的边缘I = imread(E:bacteria.BMP);BW1 = edge(I,log,0.003); % =2imshow(BW1);title(=2)BW1 = edge(I,log,0.003,3); % =3figure, imshow(BW1);title(=3

25、)不同值的LoG算子检测图像的边缘I = imread(E:bacteria.BMP);imshow(I);BW1 = edge(I,canny,0.2);figure,imshow(BW1);Canny算子检测图像的边缘(2) 对检测目标图像提取特征并进展分析基于区域的图像特征提取a=imread(E:dog.jpg);%读入图像subplot(2,2,1);%设置原始图像显示位置imshow(a);%显示原始图像title(原始图像);%命名为原始图像f=rgb2gray(a);%将原始图像转换成灰度图像B=medfilt2(f);%将图像进展中值滤波subplot(2,2,2);%设置灰

26、度图像显示位置imshow(B);title(灰度图像);seed*=256,128,300;seedy=128,256,284;hold onplot(seed*,seedy,gs,linewidth,1);title(灰度图像处理);B=double(B);markerim=B=B(seedy(1),seed*(1);for i=2:length(seed*)markerim=markerim|(B=B(seedy(i),seed*(i);endthresh=15,10,15;maskim=zeros(size(B);for i=1:length(seed*)g=abs(B-B(seedy

27、(i),seed*(i)=thresh(i);maskim=maskim|g;endg,nr=bwlabel(imreconstruct(markerim,maskim),8);g=mat2gray(g);subplot(2,2,3);imshow(g);title(最终结果);seed*=156,78,300;seedy=78,156,284;hold onplot(seed*,seedy,gs,linewidth,1);title(灰度图像处理);B=double(B);markerim=B=B(seedy(1),seed*(1);for i=2:length(seed*)markerim

28、=markerim|(B=B(seedy(i),seed*(i);endthresh=15,10,15;maskim=zeros(size(B);for i=1:length(seed*)g=abs(B-B(seedy(i),seed*(i)=thresh(i);maskim=maskim|g;endg,nr=bwlabel(imreconstruct(markerim,maskim),8);g=mat2gray(g);subplot(2,2,3);imshow(g);title(最终结果);seed*=256,128,300;seedy=128,256,284;hold onplot(see

29、d*,seedy,gs,linewidth,1);title(灰度图像处理);B=double(B);markerim=B=B(seedy(1),seed*(1);for i=2:length(seed*)markerim=markerim|(B=B(seedy(i),seed*(i);endthresh=15,10,15;maskim=zeros(size(B);for i=1:length(seed*)g=abs(B-B(seedy(i),seed*(i)=thresh(i);maskim=maskim|g;endg,nr=bwlabel(imreconstruct(markerim,ma

30、skim),8);g=mat2gray(g);subplot(2,2,3);imshow(g);title(最终结果);seed*=108,108,300;seedy=108,108,284;hold onplot(seed*,seedy,gs,linewidth,1);title(灰度图像处理);B=double(B);markerim=B=B(seedy(1),seed*(1);for i=2:length(seed*)markerim=markerim|(B=B(seedy(i),seed*(i);endthresh=15,10,15;maskim=zeros(size(B);for i

31、=1:length(seed*)g=abs(B-B(seedy(i),seed*(i)=thresh(i);maskim=maskim|g;endg,nr=bwlabel(imreconstruct(markerim,maskim),8);g=mat2gray(g);subplot(2,2,3);imshow(g);title(最终结果);seed*=108,108,108;seedy=108,108,108;hold onplot(seed*,seedy,gs,linewidth,1);title(灰度图像处理);B=double(B);markerim=B=B(seedy(1),seed*

32、(1);for i=2:length(seed*)markerim=markerim|(B=B(seedy(i),seed*(i);endthresh=15,10,15;maskim=zeros(size(B);for i=1:length(seed*)g=abs(B-B(seedy(i),seed*(i)=thresh(i);maskim=maskim|g;endg,nr=bwlabel(imreconstruct(markerim,maskim),8);g=mat2gray(g);subplot(2,2,3);imshow(g);title(最终结果);seed*=80,50,108;se

33、edy=50,80,108;hold onplot(seed*,seedy,gs,linewidth,1);title(灰度图像处理);B=double(B);markerim=B=B(seedy(1),seed*(1);for i=2:length(seed*)markerim=markerim|(B=B(seedy(i),seed*(i);endthresh=15,10,15;maskim=zeros(size(B);for i=1:length(seed*)g=abs(B-B(seedy(i),seed*(i)=thresh(i);maskim=maskim|g;endg,nr=bwla

34、bel(imreconstruct(markerim,maskim),8);g=mat2gray(g);subplot(2,2,3);imshow(g);title(最终结果);th=graythresh(g);J=im2bw(g,th);imshow(J);A1=bwperim(J);L=0;m,n=size(A1);for i=1:m*nif (A1(i)=1) L=L+1;endendL m,n=size(J);S=0;for i=1:m*nif (A1(i)=1) S=S+1;endendS *=0; y=0;for i=1:m for j=1:nif(g(i,j)=1)*=i+*;y

35、=j+y;endendend*=*/Sth=graythresh(g);J=im2bw(g,th);imshow(J);A1=bwperim(J);L=0;m,n=size(A1);for i=1:m*nif (A1(i)=1) L=L+1;endendL m,n=size(J);S=0;for i=1:m*nif (A1(i)=1) S=S+1;endendS *=0; y=0;for i=1:m for j=1:nif(g(i,j)=1)*=i+*;y=j+y;endendend*=*/Sth=graythresh(g);J=im2bw(g,th);imshow(J);A1=bwperim

36、(J);L=0;m,n=size(A1);for i=1:m*nif (A1(i)=1) L=L+1;endendLm,n=size(J);S=0;for i=1:m*nif (A1(i)=1) S=S+1;endendS *=0; y=0;for i=1:m for j=1:nif(g(i,j)=1)*=i+*;y=j+y;endendend*=*/Sth=graythresh(g);J=im2bw(g,th);imshow(J);A1=bwperim(J);L=0;m,n=size(A1);for i=1:m*nif (A1(i)=1) L=L+1;endendLm,n=size(J);S

37、=0;for i=1:m*nif (A1(i)=1) S=S+1;endendS*=0;y=0;for i=1:m for j=1:nif(g(i,j)=1)*=i+*;y=j+y;endendend*=*/S灰度处理是指不含彩色信息,只含亮度信息的图像,乍眼一看,灰度图就是黑白的,但是,点与点之间黑的程度是不一样的。原图像为400*348像素,经程序灰度化处理和中值滤波后,整幅图像很易于后续的研究处理。本次设计使我对数字图像处理技术的原理及MATLAB编程技术有了更进一步的了解。同时,深入懂得了图像中区域特征的检测与提取技术研究的具体流程和实施方法。让我不仅仅是在学习知识上,还有对科学实验的

38、严谨态度上都有了很大提升。实验五实验名称:形态学图像处理实验仪器:电脑 MATLAB软件实验目的:1了解数学形态学的根本概念;2熟悉常用的构造元素;3掌握腐蚀,膨胀以及开闭运算;实验原理:数学形态学是以形态构造元素为根底对图像进展分析的数学工具。它的根本思想是用具有一定形态的构造元素区度量和提取图像中的对应形状以到达对图像分析和识别的目的。数学形态学的应用可以简化图像数据,保持它们根本的形状特征,并除去不相干的构造。数学形态学的根本运算有4个:膨胀、腐蚀、开启和闭合。它们在二值图像中和灰度图像中各有特点。基于这些根本运算还可以推到和组合成各种数学形态学实用算法。用他们可以进展图像形状和构造的分

39、析及处理,包括基于流域概念的图像分割,基于腐蚀和开运算的骨架抽取以及图像编码压缩,基于测地距离的图像重建,基于形态学滤波器的颗粒分析和基于击中/击不中变换的目标识别等。实验容及步骤:膨胀和腐蚀这两种运算时严密联系在一起的,最常见的膨胀和腐蚀操作的组合为开操作、闭操作、击中击不中变换。Matlab 提供了 imdilate 函数来实现膨胀操作。开操作是指先对图像进展腐蚀,然后膨胀其结果。闭操作是指先对图像进展膨胀,后对其进展腐蚀。I=imread(E:zy.jpg);se=strel(disk,5,4);J1=imerode(I,se);J2=imopen(I,se);J3=imclose(I,se);subplot(2,2,1),imshow(I),*label(a) 原图);subplot(2,2,2),imshow(J1),*label(b) 腐蚀);subplot(2,2,3),imshow(J2),*label(c) 开运算);subplot(2,2,4),imshow(J3),*label(d) 闭运算);

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

当前位置:首页 > 在线阅读 > 生活休闲


备案号:宁ICP备20000045号-1

经营许可证:宁B2-20210002

宁公网安备 64010402000986号