matlab图像处理综合实验实验报告_第1页
matlab图像处理综合实验实验报告_第2页
matlab图像处理综合实验实验报告_第3页
matlab图像处理综合实验实验报告_第4页
matlab图像处理综合实验实验报告_第5页
已阅读5页,还剩24页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

..《数字图像处理》实验报告学院:专业:班级:姓名:学号:实验一实验名称:图像增强实验目的:1.熟悉图像在Matlab下的读入,输出及显示;2.熟悉直方图均衡化;3.熟悉图像的线性指数等;4.熟悉图像的算术运算及几何变换.实验仪器:计算机,Matlab软件实验原理:图像增强是为了使受到噪声等污染图像在视觉感知或某种准则下尽量的恢复到原始图像的水平之外,还需要有目的性地加强图像中的某些信息而抑制另一些信息,以便更好地利用图像。图像增强分频域处理和空间域处理,这里主要用空间域的方法进行增强。空间域的增强主要有:灰度变换和图像的空间滤波。图像的直方图实际上就是图像的各像素点强度概率密度分布图,是一幅图像所有像素集合的最基本统计规律,均衡化是指在每个灰度级上都有相同的像素点过程。实验内容如下: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>;subplot<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=<2^2*<f-1>>-1f=uint8<f>;g=uint8<g>;subplot<1,2,1>;subimage<f>,title<'变换一'>subplot<1,2,2>;subimage<g>,title<'变换二'>加法运算:clc;clearall;closeall;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>;forp=1:100j=imnoise<i,'gaussian',0,0.02>;j1=im2double<j>;k=k+j1;endk=k/100;subplot<1,3,3>,imshow<k>,title<'图三'>实验二实验名称:图像变换实验目的: 〔1进一步对matlab的了解和使用; 〔2学习如何在matlab中对数字图像的处理;实验原理: 图像和其他信号一样,既能在空间域处理,也能在频率域处理。把图像信息从空域变换到频域,可以更好的分析加工处理。因为图像信息的频域处理具有如下特点: 〔1能量守恒,但能量重新分配; 〔2有利于提取图像的某些特征; 〔3正交变换具有能量集中作用,可以实现图像的高效压缩编码; 〔4频域用快速算法;实验器材:电脑matlab软件实验内容: 〔1了解正交变换基本概念 〔2掌握图像的离散傅里叶和离散余弦变换 〔3熟悉图像的沃尔什及哈达玛变换实验过程如下:傅里叶变换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,[0255]>,title<'傅里叶逆变换'>余弦变换:clearall;RGB=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>fork=1:nwht<:,k>=hadamard<m>*I<:,k>/m;endforj=1:mwh<:,j>=hadamard<n>*wht<j,:>'/n;endwh=wh';subplot<1,2,2>;colormap<gray<128>>,imagesc<wh>;Radon变换:R=radon〔I,theta:I表示待处理的图像,theta表示Radon变换的方向角度,可以是一个标量或向量值。R的每一列对应图像I在theta某祎角度的Radon变换值。I=zeros<120,120>;I<25:75,25:75>=1;figure;imshow<I>;theta=0:180;[R,xp]=radon<I,theta>;figure;imshow<R,[],'Xdata',theta,'Ydata',xp,...'InitialMagnification','fit'>xlabel<'\theta<degrees>'>ylabel<'x'''>colormap<hot>,colorbariptsetpref<'ImshowAxesVisible','off'>实验三实验名称:图像的复原实验目的:1.加深图像复原的相关原理,熟悉相关算法;2.能够产生运动模糊图像,加入高斯,椒盐噪声,并对噪 声进行中值,均值,最大值,最小值进行滤波复原;3.对彩色图像RGB转换到HISI,并显示对应分量,同时完成相关平滑 滤波。实验仪器:计算机,Matlab软件实验原理: 图像复原的基本思路:先建立退化的数学模型,然后根据该模型对退化图像进行拟图像复原合。图像复原模型可以用连续数学和离散数学处理,处理项的实现可在空间域卷积,或在频域相乘.图像复原的基本任务:消除模糊。 图像的退化主要是由系统的相关特性以及噪声两方面的因素所导致的,我们可以通过设计一个合适的复原滤波器〔即实现逆滤波过程来实现图像的复原。图1中f〔x,y表示的是一幅静止、二维的图像,它在外部噪声n〔x,y的干扰作用之下,在经过系统h〔x,y之后,退化成为g〔x,y,复原后的图像为f〔x,y。针对于退化图像的复原,我们通常可以采用这样两种方式来进行: 其一,当对于原始图像缺乏必需的先验知识时,我们可以采用就退化过程建立一个模型,首先对其进行一个大概的描述,然后在复原的过程根据具体的情况进行逐步合理的修正,逐步消除误差影响。这种方法建立在对图像的退化过程进行合理的估计的基础之上,从这个角度来看它是一种估计的方法; 其二,当我们对原始图像具有足够的先验知识时,我们这时候则直接针对原始图像建立一个精确的数学模型,然后再对退化图像进行复原处理,这种效果更好.加入噪声:I=imread<'E:\dog.jpg'>;%读取原图像%考虑是否加入灰度处理J1=imnoise<I,'salt&pepper',0.02>;%加入椒盐噪声J2=imnoise<I,'gaussian',0,0.01>;%加入高斯白噪声J3=imnoise<I,'poisson'>;%加入泊松噪声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<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<'boundaryreplication'>;%边缘滤波%增加运动滤波,水平边缘增强,拉普拉斯滤波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.0021,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<'水平边缘增强'>subplot<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<'均值滤波'>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;clearall;I=imread<'E:\dog.jpg'>;subplot<121>;imshow<I>;title<'原始图像'>;H=fspecial<'motion',20,45>;MotionBlur=imfilter<I,H,'replicate'>;subplot<122>;imshow<MotionBlur>;title<'运动模糊图像'>;clc;clearall;I=imread<'eight.tif'>;J=imnoise<I,'salt&pepper',0.02>;K=medfilt2<J>;subplot<121>;imshow<J>;title<'加入椒盐噪声的图像'>;subplot<122>;imshow<K>;title<'中值滤波的图像'>;clc;clearall;I=imread<'snowflakes.png'>;MAX=ordfilt2<I,25,ones<5,5>>;MIN=ordfilt2<I,1,ones<5,5>>;subplot<221>;imshow<I>;title<'原始图像'>;subplot<222>;imshow<MAX>;title<'最大值滤波'>;subplot<223>;imshow<MIN>;title<'最小值滤波'>;实验四实验名称:图像的检测与分割实验目的:〔1进一步对matlab的了解和使用;〔2学习如何在matlab中对数字图像的处理;实验原理:数字图像处理主要目的:一是对图像进行加工和处理,得到满足人的视觉和心理需要的改变进行式。二是对图像中的目标物进行分析很理解,包括:把图像分割成不同目标物和背景的不同区域;提取正确代表不同目标物特点的特征参数,并进行扫描;对图像中目标物进行识别和分类;实验器材:电脑matlab软件实验内容:〔1了解图像分割的概念〔2掌握阈值分割及边缘点检测的基本方法〔3对检测目标图像提取特征并进行分析实验过程: 图像分割:指的是将数字图像细分为多个图像子区域〔像素的集合〔也被称作超像素的过程,就是把图像分成若干个特定的、具有独特性质的区域并提出感兴趣目标的技术和过程。它是由图像处理到图像分析的关键步骤。图像分割的目的是简化或改变图像的表示形式,使得图像更容易理解和分析。图像分割通常用于定位图像中的物体和边界〔线,曲线等。更精确的,图像分割是对图像中的每个像素加标签的一个过程,这一过程使得具有相同标签的像素具有某种共同视觉特性。图像分割的结果是图像上子区域的集合〔这些子区域的全体覆盖了整个图像,或是从图像中提取的轮廓线的集合〔例如边缘检测。一个子区域中的每个像素在某种特性的度量下或是由计算得出的特性都是相似的,例如颜色、亮度、纹理。邻接区域在某种特性的度量下有很大的不同。现有的图像分割方法主要分以下几类:基于阈值的分割、区域生长、区域分裂合并、分水岭算法、边缘分割〔边缘检测、直方图法、聚类分析、小波变换等。阈值分割及边缘点检测的基本方法阈值分割:双峰法、迭代法、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<'原图'>fori=1:widthforj=1:heightif<I<i,j><230>RC<i,j>=0;elseRC<i,j>=1;endendendsubplot<1,2,2>imshow<RC>title<'双峰法图像阈值分割处理效果图'>直方图如下迭代法I=imread<'E:\dog.jpg'>;I=rgb2gray<I>;Figure,subplot<1,2,1>imshow<I>;title<'原图'>clc;clearall;closeall;I=imread<'E:\dog.jpg'>;I=rgb2gray<I>;Figure,subplot<1,2,1>imshow<I>;title<'原图'>;I=double<I>;T=<min<I<:>>+max<I<:>>>/2;done=false;i=0;while~doner1=find<I<=T>;r2=find<I>T>;Tnew=<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阈值分割效果图'>;边缘点检测: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'>不同σ值的LoG算子检测图像的边缘I=imread<'E:\bacteria.BMP'>;imshow<I>;BW1=edge<I,'canny',0.2>;figure,imshow<BW1>;Canny算子检测图像的边缘对检测目标图像提取特征并进行分析〔基于区域的图像特征提取a=imread<'E:\dog.jpg'>;%读入图像subplot<2,2,1>;%设置原始图像显示位置imshow<a>;%显示原始图像title<'原始图像'>;%命名为原始图像f=rgb2gray<a>;%将原始图像转换成灰度图像B=medfilt2<f>;%将图像进行中值滤波subplot<2,2,2>;%设置灰度图像显示位置imshow<B>;title<'灰度图像'>;seedx=[256,128,300];seedy=[128,256,284];holdonplot<seedx,seedy,'gs','linewidth',1>;title<'灰度图像处理'>;B=double<B>;markerim=B==B<seedy<1>,seedx<1>>;fori=2:length<seedx>markerim=markerim|<B==B<seedy<i>,seedx<i>>>;endthresh=[15,10,15];maskim=zeros<size<B>>;fori=1:length<seedx>g=abs<B-B<seedy<i>,seedx<i>>><=thresh<i>;maskim=maskim|g;end[g,nr]=bwlabel<imreconstruct<markerim,maskim>,8>;g=mat2gray<g>;subplot<2,2,3>;imshow<g>;title<'最终结果'>;seedx=[156,78,300];seedy=[78,156,284];holdonplot<seedx,seedy,'gs','linewidth',1>;title<'灰度图像处理'>;B=double<B>;markerim=B==B<seedy<1>,seedx<1>>;fori=2:length<seedx>markerim=markerim|<B==B<seedy<i>,seedx<i>>>;endthresh=[15,10,15];maskim=zeros<size<B>>;fori=1:length<seedx>g=abs<B-B<seedy<i>,seedx<i>>><=thresh<i>;maskim=maskim|g;end[g,nr]=bwlabel<imreconstruct<markerim,maskim>,8>;g=mat2gray<g>;subplot<2,2,3>;imshow<g>;title<'最终结果'>;seedx=[256,128,300];seedy=[128,256,284];holdonplot<seedx,seedy,'gs','linewidth',1>;title<'灰度图像处理'>;B=double<B>;markerim=B==B<seedy<1>,seedx<1>>;fori=2:length<seedx>markerim=markerim|<B==B<seedy<i>,seedx<i>>>;endthresh=[15,10,15];maskim=zeros<size<B>>;fori=1:length<seedx>g=abs<B-B<seedy<i>,seedx<i>>><=thresh<i>;maskim=maskim|g;end[g,nr]=bwlabel<imreconstruct<markerim,maskim>,8>;g=mat2gray<g>;subplot<2,2,3>;imshow<g>;title<'最终结果'>;seedx=[108,108,300];seedy=[108,108,284];holdonplot<seedx,seedy,'gs','linewidth',1>;title<'灰度图像处理'>;B=double<B>;markerim=B==B<seedy<1>,seedx<1>>;fori=2:length<seedx>markerim=markerim|<B==B<seedy<i>,seedx<i>>>;endthresh=[15,10,15];maskim=zeros<size<B>>;fori=1:length<seedx>g=abs<B-B<seedy<i>,seedx<i>>><=thresh<i>;maskim=maskim|g;end[g,nr]=bwlabel<imreconstruct<markerim,maskim>,8>;g=mat2gray<g>;subplot<2,2,3>;imshow<g>;title<'最终结果'>;seedx=[108,108,108];seedy=[108,108,108];holdonplot<seedx,seedy,'gs','linewidth',1>;title<'灰度图像处理'>;B=double<B>;markerim=B==B<seedy<1>,seedx<1>>;fori=2:length<seedx>markerim=markerim|<B==B<seedy<i>,seedx<i>>>;endthresh=[15,10,15];maskim=zeros<size<B>>;fori=1:length<seedx>g=abs<B-B<seedy<i>,seedx<i>>><=thresh<i>;maskim=maskim|g;end[g,nr]=bwlabel<imreconstruct<markerim,maskim>,8>;g=mat2gray<g>;subplot<2,2,3>;imshow<g>;title<'最终结果'>;seedx=[80,50,108];seedy=[50,80,108];holdonplot<seedx,seedy,'gs','linewidth',1>;title<'灰度图像处理'>;B=double<B>;markerim=B==B<seedy<1>,seedx<1>>;fori=2:length<seedx>markerim=markerim|<B==B<seedy<i>,seedx<i>>>;endthresh=[15,10,15];maskim=zeros<size<B>>;fori=1:length<seedx>g=abs<B-B<seedy<i>,seedx<i>>><=thresh<i>;maskim=maskim|g;end[g,nr]=bwlabel<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>;fori=1:m*nif<A1<i>==1>L=L+1;endendL[m,n]=size<J>;S=0;fori=1:m*nif<A1<i>==1>S=S+1;endendSx=0;y=0;fori=1:mforj=1:nif<g<i,j>==1>x=i+x;y=j+y;endendendX=x/Sth=graythresh<g>;J=im2bw<g,th>;imshow<J>;A1=bwperim<J>;L=0;[m,n]=size<A1>;fori=1:m*nif<A1<i>==1>L=L+1;endendL[m,n]=size<J>;S=0;fori=1:m*nif<A1<i>==1>S=S+1;endendSx=0;y=0;fori=1:mforj=1:nif<g<i,j>==1>x=i+x;y=j+y;endendendX=x/Sth=graythresh<g>;J=im2bw<g,th>;imshow<J>;A1=bwperim<J>;L=0;[m,n]=size<A1>;fori=1:m*nif<A1<i>==1>L=L+1;endendL[m,n]=size<J>;S=0;fori=1:m*nif<A1<i>==1>S=S+1;endendSx=0;y=0;fori=1:mforj=1:nif<

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论