MATLAB数字图像处理_课程论文.docx_第1页
MATLAB数字图像处理_课程论文.docx_第2页
免费预览已结束,剩余11页可下载查看

下载本文档

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

文档简介

数字图像处理期末大作业 指导老师:吴建辉 学生:钟涛 学号:24102200147数字图像处理期末大作业暨课程考核报告姓 名:钟涛序 号:33班 级:n电信10-1f学 号:24102200147指导老师:吴建辉目录i.算法的matlab实现- 3 -1.1.绘制灰度直方图,实现直方图均衡化和直方图匹配(规定化)- 3 -1.1.1算法原理- 3 -1.1.2算法设计- 3 -1.1.3实验结果及对比分析- 3 -1.2.灰度图像的对比度增强- 4 -1.2.1.算法原理- 4 -1.2.2.算法设计- 4 -1.2.3.实验结果及分析- 5 -1.3.图形的几何变换- 5 -1.3.1.算法原理- 5 -1.3.2.算法设计- 5 -1.3.3.实验结果及分析- 6 -1.4.图像加噪(用输入参数控制不同噪声),然后使用空域和频域进行滤波处理- 6 -1.4.1.算法原理- 6 -1.4.2.算法设计- 6 -1.4.3.实验结果及分析- 6 -1.5.采用robert,prewitt,sobel,拉普拉斯算子对图像进行边缘提取- 7 -1.5.1.算法原理- 7 -1.5.2.算法设计- 7 -1.5.3.实验结果及分析- 7 -1.6.附加题目- 8 -1.6.1.算法原理- 8 -1.6.2.算法设计- 8 -1.6.3.实验结果及分析- 8 -ii.基于matlab的算法包的gui设计- 9 -2.1.gui概述- 9 -2.2.算法包gui界面功能设计- 9 -2.3.gui界面设计结果- 10 -2.4.gui图像处理算法包实验结果- 10 -iii.小结(感受和体会)- 12 -i. 算法的matlab实现1.1. 绘制灰度直方图,实现直方图均衡化和直方图匹配(规定化)1.1.1 算法原理灰度直方图表示数字图像中每一灰度级出现的频率,即该灰度级的像素数与图像的总像素数之比。灰度图像为256级灰度,通过find()函数寻找每一级灰度值的像素的个数并统计,计入行向量中,统计结束后讲统计结果绘制成直方图。1.1.2 算法设计采用matlab ipt工具箱函数imhist()便可以求出图像的直方图,调用格式为imhist(i),i为待处理的图像。采用ipt函数histeq()可以对图像进行均衡化以及规定化,调用格式为(1)j = histeq(i, hgram),(2)j = histeq(i, n),其中n = 256时,对图像进行均衡化。hgram为指定的向量时便可对图像进行规定化。matlab源程序:img=imread(e:desktop数字图像-期末大作业myself.jpg);%读取图像figure(1);imshow(img);title(原图像像素图),img=rgb2gray(img);%绘制直方图m,n=size(img);figure(2);bar(0:255,imhist(img)/(m*n),b);title(原图像直方图);xlabel(灰度图);ylabel(出现概率);%三,直方图均衡化s1=zeros(1,256);for i=1:256 for j=1:i s1(i)=gp(j)+s1(i); %计算sk endends2=round(s1*256); %将sk归到相近级的灰度for i=1:256 gpeq(i)=sum(gp(find(s2=i); %计算现有每个灰度级出现的概率 endfigure(3);bar(0:255,gpeq,r) %显示均衡化后的直方图title(均衡化后的直方图);xlabel(灰度值);ylabel(出现概率);figure(4);1.1.3 实验结果及对比分析通过结果可以看出,图像的灰度级集中在灰度值较大的区间,这就是图像看上去较明亮的原因。通过均衡后结果可以看出,图像的显示效果得到了明显改善,灰度值不再集中在数值较大的区域,而是均匀分布在整个灰度级区间内。1.2. 灰度图像的对比度增强1.2.1. 算法原理讲图像的亮度值映射到一个新的区间,即将low_in至high_in之间的值映射到low_out到high_out之间的值。1.2.2. 算法设计采用ipt工具箱函数imadjust(),可以对图像的亮度对比度进行调整。其调用格式为 g = imadjust(f,low_in,high_in,low_out,high_out,gamma).另外,采用对数变化式 g = 1./(1 + (m./(double(f) + eps)).e)可以对图像的对比度进行变换。matlab源程序:img=imread(e:pic08.jpg);%读取图像if length(img) = 0 % if only one argument it must be f. method = full8;else method = img1;endif strcmp(class(f), double) & (max(f(:) 1 | min(f(:) 1 | low 1 | high 0 error(parameters low and high must be in the range 0, 1.) end if strcmp(class(f), double) low_in = min(f(:); high_in = max(f(:); elseif strcmp(class(f), uint8) low_in = double(min(f(:)./255; high_in = double(max(f(:)./255; elseif strcmp(class(f), uint16) low_in = double(min(f(:)./65535; high_in = double(max(f(:)./65535; end % imadjust automatically matches the class of the input. g = imadjust(f, low_in high_in, low high); otherwise error(unknown method.)end1.2.3. 实验结果及分析通过对象对比,可以看出图像的显示效果得到了明显的改善,便于观察。1.3. 图形的几何变换1.3.1. 算法原理通过图像点的坐标几何对应的关系实现图像的几何变化,平移、旋转等变换。1.3.2. 算法设计采用ipt工具箱函数imtransform()可以对图像进行变化。其调用格式为 b=imtransform(a,tform,interp),其中tform 向量决定图像的几何变换关系。matlab源程序:i = imread(e:desktop数字图像-期末大作业myself.jpg);f=imread(e:desktop数字图像-期末大作业myself.jpg);imshow(f);title(原图);m,n=size(f);g=zeros(m,n);for i=1:m for j=1:n g(i,j)=f(i,n-j+1); endendfigure,imshow(uint8(g);title(水平镜像);for i=1:m; for j=1:n; g(i,j)=f(m-i+1,j); endendfigure,imshow(uint8(g);title(垂直镜像);实验结果及分析通过结果可以看出,算法实现了图像的几何变换。1.4. 图像加噪(用输入参数控制不同噪声),然后使用空域和频域进行滤波处理1.4.1. 算法原理通过噪声特性,产生不同的噪声加入到图像中各点的像素值中去,便可对图像进行加躁。采用空间掩膜矩阵与图像进行卷积进行空间域滤波,不同的掩膜矩阵滤波的效果也会不同。使用频域滤波器在频域空间对加入了噪声的图像进行滤波。1.4.2. 算法设计使用matlab ipt工具箱函数imnoise()可以对图像进行加躁。其调用格式为j=imnoise(i,type,parameters) 其中type的不同取值决定不同的噪声特性,如高斯,椒盐等。imfilter()可以对图像进行空间域以及频域进行滤波。其调用格式为b = imfilter(a, h),其中h为滤波器的传递函数,a为待处理的图像。matlab源程序:clear all;i=imread(myself.jpg);j1=imnoise(i,gaussian,0,0.02); j3=imnoise(i,speckle,0.02); subplot(2,2,1),imshow(i),title(原始图像);subplot(2,2,2),imshow(j1),title(高斯噪声);subplot(2,2,4),imshow(j3),title(高斯噪声滤波);1.4.3. 实验结果及分析可以看出,滤波后图像的噪声没有噪声图像明显了,但是图像比原图像要变得模糊了,这是高斯滤波器的缺点之一,滤波并没有得到理想的原图像。1.5. 采用robert,prewitt,sobel,拉普拉斯算子对图像进行边缘提取1.5.1. 算法原理灰度或结构等信息的突变成为边缘,在空间域可以借助微分算子通过卷积运算来完成,空间域的微分在离散数字图像可以采用差分来近似。基于一阶导数的边缘检测算子有roberts算子,sobel算子,prewitt算子。基于二阶导数的边缘检测算子有laplacian算子,log,canny算子是一中改进的算子。1.5.2. 算法设计采用matlab ipt工具箱函数edge()可以对图像进行边缘检测,其调用格式为,bw = edge(i,type,thresh),其中type为选用的算子。matlab源程序:f=imread(d:数字图像gg.jpg);subplot(1,2,1);imshow(f);title(原图);f=double(f);a1=-1,-1,-1,0,0,0,1,1,1;a2=-1,0,1,-1,0,1,-1,0,1;z1=conv2(f,a1);z2=conv2(f,a2);r=sqrt(z1.2+z2.2);r=uint8(r);imwrite(r,prewitt.tif);subplot(1,2,2);imshow(r);title(prewitt算子边缘检测);1.5.3. 实验结果及分析通过结果可以看出,算法提取出了图像的边缘。1.6. 附加题目:读入两幅图像,一幅为背景图像,一幅为含有目标的图像,应用所学的知识提取出目标1.6.1. 算法原理通过目标与背景之间的差异,对图像中各个像素值与阀值进行比较,满足约束条件的视为目标,将其提取出来,不满足的的则视为背景,不提取。1.6.2. 算法设计边缘检测,直线hough检测,阀值分析,提取出目标。matlab源程序:clear;clcrgb=imread(myself.jpg);image=rgb(:,:,1);r=rgb(:,:,1);n=rgb(:,:,1);g=rgb(:,:,1);t=graythresh(image);bw=im2bw(image,t);bw=imfill(bw,holes);bw=bwareaopen(bw,1500);imshow(bw); r(bw)=0;n(bw)=0;g(bw)=0;rgb=cat(3,r,n,g); figure,imshow(rgb)1.6.3. 实验结果及分析通过结果可以看出,算法提取出了目标图像。但是目标与原始的时候存在一定的差异,这是因为目标中有一些像素点的值与背景比较接近,所以被判定为了背景像素。ii. 基于matlab的算法包的gui设计2.1. gui概述gui 是 graphical user interface 的简称,即图形用户界面,通常人机交互图形化用户界面设计经常读做“goo-ee”准确来说 gui 就是屏幕产品的视觉体验和互动操作部分。本次设计的基于matlab算法的gui能对图像进行一些简单的处理。2.2. 算法包gui界面功能设计在matlab中新建gui,利用菜单编辑功能编辑新建gui功能栏主要功能分为点击开始,图像编辑,图像分析,图像调整,图像平滑,图像锐化, 图像高级处理七个模块2.3. gui界面设计结果2.4. gui图像处理算法包实验结果图像编辑图像缩放图像编辑图像缩放图像调整直方图均衡化图像平滑加噪iii. 小结(感受和体会)在刚刚拿到这个课程设计的要求的时候,感觉自己无从下手,迟迟不敢做,因为自己根本不知道要如何做,不过在老师给了课程设计论文的格式要求之后,就按照里面的详细要求开始了作业。必竟这个是期末的大作业,最后一次作业了,不敢松懈呀!在翻看书籍查阅相关资料后,思绪渐渐明朗起来,尤其在第二部分的gui设计的时候,起初根本就不知道如何进行操作,老师上课讲过,不过因为没及时练习,导致课后就什么知识点都忘记了。这次的作业让我深刻的体会到了matlab处理图像的魅力所在,最有趣的就是gui界面的设计。在

温馨提示

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

评论

0/150

提交评论