数字图像处理实验MATLAB版+实验报告亲笔

冷不防 2022-07-28 10:52 308阅读 0赞

实验一 图像打开、保存与显示

一、实验目的:

掌握数字图像的基本类型及其表示。熟悉Matlab软件环境,了解Matlab中对图像数据的读入、显示和输出等操作,实现图像文件的打开、显示与保存功能。

二、实验环境:

计算机、WindowsXP操作系统,Matlab7.0

三、实验内容:

实验前准备工作:

所使用的图像文件都保存在Matlab安装目录下的\toolbox\images\imdemos子目录下。将实验中需要使用的图像文件,事先拷贝到Matlab安装目录下的\work子目录下。(Matlab默认处理当前工作目录下的图像文件)

1、运用Matlab图像处理工具箱中的imread函数分别读入灰度图像pout.tif、二值图像blobs.png、索引图像trees.tif和RGB图像peppers.png,观察相应的图像矩阵,并运用imshow函数显示相应图像。

2、对一个RGB彩色图像peppers.png,分别抽取其R、G、B三个分量层,并显示各层图像。

3、向灰度图像pout.tif中分别加入高斯噪声和椒盐噪声,显示并保存带有噪声的图像。

实验二 图像灰度直方图统计

一、实验目的:

理解并掌握灰度直方图的概念、计算灰度直方图的方法以及如何应用直方图均衡化来增强图像对比度。

二、实验环境:

计算机、WindowsXP操作系统,Matlab7.0

三、实验内容:

以灰度图像pout.tif为例,运用Matlab编程实现灰度直方图的统计以及直方图均衡化处理过程:

(1)计算并绘制原始图像的灰度直方图;

(2)根据离散累计分布函数,对原始灰度直方图进行均衡化处理,绘制均衡化后的灰度直方图;

(3)生成均衡化处理后的新图像,显示并保存。

(4)比较原始图像和新图像的对比度。

注:基于MATLAB强大的处理图像和支持数学计算的功能,该课程所有实验皆用MATLAB实现。

实验一:

代码实现:

  1. >> I_huidu=imread('pout.tif');
  2. >> figure(1),imshow(I_huidu);
  3. >> I_erzhi=imread('blobs.png');
  4. >> figure(2),imshow(I_erzhi);
  5. >> I_erzhi2=imread('circles.png');
  6. >> figure(3),imshow(I_erzhi2);
  7. >> [I_suoyin,colormap]=imread('trees.tif');
  8. >> figure(4),imshow(I_suoyin);
  9. >> imshow(I_suoyin,colormap);
  10. >> I_reb=imread('peppers.png');
  11. >> R=I_reb(:,:,1);
  12. >> figure(5),imshow(R);
  13. >> subplot(2,2,1),imshow(I_reb);
  14. >> subplot(2,2,2),imshow(R);
  15. >> G=I_reb(:,:,2);
  16. >> B=I_reb(:,:,3);
  17. >> subplot(2,2,3),imshow(G);
  18. >> subplot(2,2,4),imshow(B);
  19. >> I=imread('pout.tif');
  20. >> G=imnoise(I,'gaussian');
  21. >> figure(6),subplot(1,3,1),imshow(I);
  22. >> subplot(1,3,2),imshow(G);
  23. >> J=imnoise(I,'salt & pepper');
  24. >> J=imnoise(I,'salt & pepper',0.05);
  25. >> subplot(1,3,3),imshow(J);
  26. >> imwrite(G,'gpout.tif');
  27. >> imwrite(J,'jpout.tif');

实验报告:

Center

Center 1

Center 2

实验二:代码实现:(.m文件)

  1. grayimage=imread('pout.tif');
  2. [m,n]=size(grayimage);
  3. gp=zeros(1,256);
  4. for i=1:256
  5. gp(i)=length(find(grayimage==(i-1)))/(m*n);
  6. end
  7. subplot(2,2,1),imshow(grayimage);
  8. subplot(2,2,2),bar(0:255,gp);
  9. S1=zeros(1,256);
  10. S2=zeros(1,256);
  11. temp=0;
  12. for i=1:256
  13. temp=temp+gp(i);
  14. S1(i)=temp;
  15. end
  16. S2=round(S1*255);
  17. newgp=zeros(1,256);
  18. for i=1:256
  19. newgp(i)=sum(gp(find(S2==(i-1))));
  20. end
  21. subplot(2,2,4),bar(0:255,newgp);
  22. newgrayimage=grayimage;
  23. for i=1:256
  24. newgrayimage(find(grayimage==(i-1)))=S2(i);
  25. end
  26. subplot(2,2,3),imshow(newgrayimage);
  27. imwrite(newgrayimage,'newpout.tif');

实验报告:

Center 3

Center 4

Center 5

发表评论

表情:
评论列表 (有 0 条评论,308人围观)

还没有评论,来说两句吧...

相关阅读

    相关 MATLAB数字图像处理实验

    一、实验要求 1、直方图(读入你自己的图片并显示; 用默认、条形图、杆状图及曲线四种方式显示直方图,并将它们绘制在同一幅figure中进行比较) 2、九种默认的滤波器并