数字图像处理上机作业一_第1页
数字图像处理上机作业一_第2页
数字图像处理上机作业一_第3页
数字图像处理上机作业一_第4页
数字图像处理上机作业一_第5页
已阅读5页,还剩2页未读 继续免费阅读

下载本文档

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

文档简介

1、 数字图像处理上机作业一1. 设计一个程序,绘制出一幅灰度图象的直方图。Solution:代码及代码的说明:%作用:返回灰度矩阵a,并画出直方图function a=zhifangtu(x) % x为要分析的图像名加单引号I=imread(x);b=size(I);a=zeros(1,256); % a为一个1*256的矩阵分别记录灰度为0到255的像 %的个数for m=1:b(1) %两个for语句将整张图的所有像素都扫描一遍 for n=1:b(2) a(I(m,n)+1)= a(I(m,n)+1)+1; %将灰度为I(m,n)的像素个数存储在%a(I(m,n)+1)中,因为matlab

2、里没有 %a(0) endendn=0:255;bar(n,a);%画出直方图s=sum(a) %查看直方图的总的面积等于这张图的总像素值实验结果及分析:在命令窗口中输入zhifangtu('Lenna.bmp')返回s =262144,以及灰度矩阵a,同时有如下直方图输出:分析及结论:在命令窗口中用size命令可查知Lenna.bmp是512*512的,返回的s =262144恰等于512*512,说明所编的直方图的程序恰将所有的像素点都统计了,直方图的总面积等于像素总数。直方图的作用也就是将一张图中不同灰度值对应像素数的一个统计。在这个程序的编写中应注意a(I(m,n)+1

3、)= a(I(m,n)+1)+1 不能写成a(I(m,n)= a(I(m,n)+1 ,应为在matlab中矩阵表示没有a(0),若某个像素点的灰度值是0,就会出错,故应写成a(I(m,n)+1)= a(I(m,n)+1)+1形式。2.对同一场景但模糊程度不一样的三张数字图像绘制出其直方图, 计算每一幅图象所有像素灰度的方差。图象的清晰度同灰度方差什么关系? Solution:代码及代码的说明:%作用:绘出模糊程度不一样的三张数字图像的直方图,并输出各自灰度方差I1=imread('tu1.bmp');I1=rgb2gray(I1); %转换为灰度图像imwrite(I1,

4、9;tu0.bmp'); %由于直方图只能对灰度图作用,故先将其转为灰度图subplot(2,2,1);zhifangtu('tu0.bmp');title('tu1直方图'); %绘出tu1.bmp的直方图k1=size(I1);I1=single(I1);I1=(I1-mean(mean(I1)').2; %个像素灰度值减去平均灰%值后再平方t1=sum(sum(I1)')/k1(1)/k1(2), %输出tu1.bmp的所有像素灰度的方差subplot(2,2,2);zhifangtu('tu2.bmp');titl

5、e('tu2直方图'); %绘出tu2.bmp的直方图I2=imread('tu2.bmp');k2=size(I2);I2=single(I2);I2=(I2-mean(mean(I2)').2; %个像素灰度值减去平均灰度值后再%平方t2=sum(sum(I2)')/k2(1)/k2(2), %输出tu2.bmp的所有像素灰度的方差subplot(2,2,3);zhifangtu('tu3.bmp'); title('tu3直方图'); %绘出tu3.bmp的直方图I3=imread('tu3.bmp&

6、#39;);k3=size(I3);I3=single(I3);I3=(I3-mean(mean(I3)').2; %个像素灰度值减去平均灰度值%后再平方t3=sum(sum(I3)')/k3(1)/k3(2), %输出tu3.bmp的所有像素灰度的方差figure;subplot(2,2,1);imshow('tu1.bmp');title('tu1图'); %绘出tu1.bmp的图subplot(2,2,2);imshow('tu2.bmp');title('tu2图'); %绘出tu1.bmp的图subplo

7、t(2,2,3);imshow('tu3.bmp');title('tu3图'); %绘出tu1.bmp的图实验结果及分析:上述代码执行后,输出t1 = 7.3027e+003,t2= 6.5808e+003,t3=5.4860e+003;同时输出如下直方图:原始图:分析及结论:tu1,tu2,tu3三幅图是依次变模糊的,三张图的所有像素灰度方差依次为t1 = t1 = 7.3027e+003,t2= 6.5808e+003,t3=5.4860e+003,它们是依次变小的,可知图象的清晰度随灰度方差的变小而变得模糊。2. 对一幅灰度图象进行线性点运算操作,使其:

8、 (a)亮度增加 (b)对比度增加,且平均亮度不变 (c)反色 . 用第一题的程序分别绘制出直方图.Solution:代码及代码的说明:%作用:对一幅灰度图象进行线性点运算操作,使(a)I1输出亮度增加的图 (b)I2输出对比度增加,且平均亮% 度不变的图 (c)I3输出反色的图function bianhuan(x)I=imread(x); %将待操作的灰度图以数字形式存于矩阵I中imwrite(I,'I.bmp'); %将原图以I.bmp名存储I1=I+50; %在原图基础上使亮度增加imwrite(I1,'I1.bmp');k=size(I);I2=1.5

9、*(single(I)-mean(mean(I)')+mean(mean(I)'); %使对比度增加,平均亮度不变I2=uint8(I2); %在转换为8位无符号二进制数方式存储imwrite(I2,'I2.bmp');I3=255-I; %反色imwrite(I3,'I3.bmp');subplot(2,2,1);imshow('I.bmp');title('原始图'); %输出原图subplot(2,2,2);imshow('I1.bmp');title('I1.bmp'); %

10、I1.bmp图subplot(2,2,3);imshow('I2.bmp');title('I2.bmp'); %I2.bmp图subplot(2,2,4);imshow('I3.bmp');title('I3.bmp'); %I3.bmp图figure;subplot(2,2,1);zhifangtu('I.bmp');title('原始图直方图');%输出原图的直方图subplot(2,2,2);zhifangtu('I1.bmp');title('I1直方图')

11、; %I1.bmp图的直方图subplot(2,2,3);zhifangtu('I2.bmp');title('I2直方图'); %I2.bmp图的直方图subplot(2,2,4);zhifangtu('I3.bmp');title('I3直方图'); %I3.bmp图的直方图实验结果及分析:在命令窗口中输入bianhuan(Lenna.bmp)执行上述代码后,输出如下图形:分析及结论: 在线性点运算D2=a*D1+b中,a=1,b>0可使输出图形亮度增加,如上面有I到I1的变换;a>1,b=0,可使对比度增加,但同时也会使图形的亮度增加,为了得到对比度增加,平均亮度不变的图形,可以执行一下的一段程序:I2=1.5*(single(I)-mean(mean(I)')+mean(mean(I)'),其中mean(mean(I)')为I所有像素灰度的平均值,让I中所有像素的灰度值

温馨提示

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

评论

0/150

提交评论