matlab数字图像处理 课程设计论文 期中大作业_第1页
matlab数字图像处理 课程设计论文 期中大作业_第2页
matlab数字图像处理 课程设计论文 期中大作业_第3页
matlab数字图像处理 课程设计论文 期中大作业_第4页
matlab数字图像处理 课程设计论文 期中大作业_第5页
已阅读5页,还剩7页未读 继续免费阅读

下载本文档

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

文档简介

1、数字图像处理期中大作业 姓名:钟涛学号: 24102200147序号:23南湖学院机电系2013年4月第一部分:IPT函数的应用1、 读取并显示一张彩色图像,然后将其灰度化,并将灰度化后的结果存入计算机中,最后再将其二值化;2、 解答:(1)程序f=imread('pic.jpg')%读入图像meimshow(f)%显示图像mea=rgb2gray(f) %调用灰度处理函数对头像进行灰度处理figure,imshow(a)%显示灰度处理后的图像b=im2bw(a)%调用二值转换函数将图像转换成二值图像figure,imshow(b)%显示灰度处理后的二值图像imwrite(a,

2、'pic-gai.jpg')%将灰度图像写入计算机imwrite(b,'pic-gai.jpg')%将二值图像写入计算(2)运行结果 图1:原图pic.jpg图2:灰度处理后的pic.jpg图3:灰度处理加二值处理后的pic-gai.jpg(3)结果分析调用灰度系统函数对图像进行灰度化,然后进行二值处理。灰度处理后去掉了彩色,二值处理让深灰色变成黑色 浅灰色变成了白色。2、使用亮度变换函数完成一张灰度图片的亮度调整:解答:(1)程序:f2=rgb2gray(imread('pic.jpg') %读入图像并进行灰度处理imshow(f2) %显示灰

3、度处理后的图像F=fft2(f2) %对图像进行DFT计算S=abs(F) %得到频谱图figure,imshow(S,) %显示频谱图Fc=fftshift(F) %进行图像的平移figure,imshow(abs(Fc),) %显示平移后图像S2=log(1+abs(Fc) %进行对数变换figure,imshow(S2,) %显示对数变换后的图像 (3)运行结果 图1 灰度图像 图2 f4直方图图3 进行规定化之后的效果g4 图4 g4直方图(3)结果分析通过调用函数fft2进行DFT计算,然后利用fftshift将变换的原点平移到频率矩阵中心,可以明显 看到图像中心点的变化(图3),然

4、后利用对数变化增强视觉效果(图4),结果变化明显,一目了然。3、计算图像的直方图并对其进行均衡化和规定化;(1.1)直方图均衡化(1)程序f2=rgb2gray(imread('pic.jpg'); %读入图像fan,并进行灰度处理imshow(f2); %显示灰度图像f2figure,imhist(f2); %显示灰度图像f2,显示f2的直方图ylim('auto'); %设定刻度线和取值范围g2=histeq(f2,256); %对图像f2进行直方图均衡化处理,生成图像g2figure,imshow(g2); %显示之前的所有图像,显示g2figure,im

5、hist(g2) %显示之前所有图像,显示g2的直方图ylim('auto') %设定刻度线和取值范围imwrite(f2,'f2.jpg') %将灰度图像f2写入计算机imwrite(g2,'g2.jpg') %将均衡化后的图像g2写入计算机(1.2)直方图均衡化运行结果: 图1 灰度处理后的图像f2 图2 f2直方图图3均衡化处理后效果g2 图4 g2直方图(2.1)直方图的规定化(1)程序f4=rgb2gray(imread('pic.jpg')%读入图像fan,并进行灰度处理imshow(f4)%显示灰度图像f4imwri

6、te(f4,'f4.jpg')%将灰度图像f4写入计算机figure,imhist(f4)%得到f4直方图ylim('auto')%设定刻度值和取值范围xlim('auto')%设定刻度值和取值范围g4=histeq(f4,0 50 100 150 200 256)%进行直方图规定化,生成图像g4figure,imshow(g4)%保持显示之前图像,显示g4figure,imhist(g4)%保持显示之前图像,显示g4直方图ylim('auto')%设定刻度值和取值范围xlim('auto')%设定刻度值和取值范围

7、imwrite(g4,'g4.jpg')%将g4写入计算机(2.2)直方图规定化运行结果 图1 灰度图像 图2直方图 图3 进行规定化后的效果 图4 直方图4、调用噪声函数对读入的图像加噪,然后调用空间噪声滤波函数进行滤波,并对滤波效果进行分析(1)程序w=rgb2gray(imread('pic.jpg')%将图像灰度化imshow(w)%显示图像k=imnoise(w,'salt & pepper')%加椒盐噪声figure,imshow(k)%显示原图,显示被噪声污染的图像k1=medfilt2(k)%使用中值滤波器滤波figure

8、,imshow(k1)%保留显示之前所有图像,并显示滤波后图像imwrite(k,'k.jpg')%将噪声图像写入计算机imwrite(w,'w.jpg')%见灰度图像写入计算机(2)运行结果图1 灰度图像 图2 加椒盐噪声后的效果 图3 中值滤波处理后图像(3)结果分析首先得到灰度图像,然后加入默认噪声密度为0.05的椒盐噪声。得到被噪声轻度污染的图像(图2),然后用中值滤波器进行滤波,滤除椒盐噪声,且滤波效果良好,接近原图,较为清晰,但一些细节之处还是有所丢失。 5、查找Matlab图像处理工具箱(IPT)中的亮度变换函数,并使用亮度变换函数完成一张灰度图片

9、的亮度调整。(1)程序f1=rgb2gray(imread('pic.jpg') %读入图像fan并进行灰度处理g1=imadjust(f1,0.5 0.85,0 1) %对灰度图像f1进行亮度调整imshow(f1),figure,imshow(g1) %显示灰度图像f1和亮度调整后图像g1imwrite(f1,'f1.jpg') %将灰度图像f1写入计算机imwrite(g1,'g1.jpg') %将亮度处理后的图像g1写入计算机(2)运行结果图1 原灰度图像 图2 进行亮度处理后的图像(3)结果分析调用亮度处理函数imadjust处理图像后

10、,将0.5至0.85之间的灰度级拓展到0 1。突出其中的灰度级。由图2可以看出,图像的亮暗发生了明显的变化。6、调用库函数,完成对加噪图像的滤波,并和空间滤波函数效果进行比较。(1)程序f6=imread('pic.jpg')%读入图像h=fspecial('motion')%创建一个滤波器g6=imfilter(f6,h)%空间滤波figure,imshow(f6)%显示图像figure,imshow(g6)%滤波后图像imwrite(g6,'g6.jpg')%将滤波后图像写入计算机g60=medfilt2(f6)%调用库函数对噪声图像进行中值

11、滤波figure,imshow(g60)%显示滤波后图像imwrite(g6,'g60.jpg') %将中值滤波后图像写入计算机(2)运行结果图1 原图图2空间滤波图3调用库函数对噪声图像进行中值滤波第二部分:自编函数完成下述算法2、绘制灰度直方图,完成直方图均衡化算法和直方图归定化(匹配)算法,并对算法原理进行说明;算法如下:直方图均衡化P=imread('pic.jpg'); %读入彩色图像文件imshow(P) %显示图像title('原始彩色图像')P1=rgb2gray(P); %显示灰度图像imwrite(P1,'P1.jpg

12、'); %保存图像figure,imshow(P1) %显示图像title('灰度化后图像')m,n=size(P1); %测量图像尺寸参数GP=zeros(1,256); %预创建存放灰度出现概率的向量for k=0:255 GP(k+1)=length(find(P1=k)/(m*n); %计算每级灰度出现的概率,将其存入GP中相应位置endfigure,bar(0:255,GP,'g') %绘制直方图title('原图像直方图')xlim('auto')ylim('auto')S1=zeros(1,2

13、56);for i=1:256 for j=1:i S1(i)=GP(j)+S1(i); %计算Sk endS2=round(S1*256); end %将Sk归到相近级的灰度for i=1:256 GPeq(i)=sum(GP(find(S2=i); %计算现有每个灰度级出现的概率endfigure,bar(0:255,GPeq,'b') %显示均衡化后的直方图title('均衡化后直方图')xlim('auto')ylim('auto')figure,plot(0:255,S2,'r') %显示灰度变化曲线 l

14、egend('灰度变化曲线')xlabel('原图像灰度级')ylabel('均衡化后灰度级') P2=P1;for i=0:255 P2(find(P1=i)=S2(i+1); %将各个像素归一化后的灰度值赋给这个像素endfigure,imshow(P2) %显示均衡化后的图像title('均衡化后图像')imwrite(P2,'P2.jpg');简要说明:首先调用灰度函数对图像灰度处理,然后测得灰度图像的相关数据量,计算现有各级灰度出现概率。然后绘制直方图,计算均衡变化后各灰度级出现概率,显示均衡化后直方图。

15、(2)运行结果直方图规定化:f=rgb2gray(imread('pic.jpg')imshow(f)title('原始图像') I=f; J=I; New=I; L=256; %灰度级 Ps=zeros(L,1); % 存储原图像直方图概率数据 nk=zeros(L,1); % 存储原图像直方图数据 nk2=zeros(L,1); % 存储直方图规定化后的图像的直方图 Rk=zeros(L,1); % 存储原图像累积直方图数据 Ps2=zeros(L,1); Rk2=zeros(L,1); M,N=size(I); % 计算图像数据矩阵的行列数 n=M*N;

16、%总像素个数 for i = 1:M for j = 1:N num = double( I(i,j)+1; %获取像素灰度级 nk(num) = nk(num)+1; %统计nk end end figure,bar(0:255,nk,'g')title('原图像直方图') %计算直方图概率估计 for i=1:L Ps(i)=nk(i)/n; %计算累积直方图 if i=1 Rk(i)=Ps(i); else 1<=256 Rk(i)=Rk(i-1)+Ps(i); end %规定化直方图Ps2Temp=0.05,zeros(1,9),0.05,zero

17、s(1,9),0.05,zeros(1,9),0.05,zeros(1,9),0.05,zeros(1,9),0.05,zeros(1,9),0.05,zeros(1,39),0.05,zeros(1,19),0.05,zeros(1,19),0.05,zeros(1,19),ones(1,80).*0.0045,ones(1,16).*0.0088; Ps2=Ps2Temp' %计算规定化累积直方图 for c=1:L if c=1 Rk2(c)=Ps2(c); else Rk2(c)=Rk2(c-1)+Ps2(c); end end %计算原图像与目标图像累计直方图数值的差的绝对值

18、 double ScMin=zeros(256,256); for Y=1:L for X=1:L ScMin(X,Y)=abs(Rk(Y)'-Rk2(X)'); end end %建立映射 HisM=zeros(L:1); for P=1:L min = 0; minV=ScMin(1,P); for Q=1:L if(minV>ScMin(Q,P) minV=ScMin(Q,P); min = Q; end end HisM(P)= min; end %将原图像的每个像素灰度转换为直方图均衡化后的灰度 for x = 1:M for y = 1:N Num = double( I(x,y)+1; if Num=i New(x,y)=HisM(i); end end end end %计算直方图规定化后的直方图 for p = 1:M for q = 1:N NN = double( New(p,

温馨提示

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

评论

0/150

提交评论