数字图像处理实验报告2

  • 格式:doc
  • 大小:1.86 MB
  • 文档页数:6

信息工程学院实验报告
课程名称: 数字图像处理
实验项目名称:实验二 数字图像基本运算 实验时间:
班级:电信112 姓名:
学号:
一、实验目的
1.理解图像点运算、代数运算和几何运算的基本定义和常见方法;
2.掌握在MTLAB 中对图像进行点运算、代数运算、几何运算的方法;
3.掌握在MATLAB 中进行插值方法;
4..运用MATLAB 语言进行图像的插值缩放和插值旋转;
5.进一步熟悉了解MATLAB 语言的应用。

二、实验设备与软件
1.PC 计算机系统
2.MATLAB 软件以及包括图像处理工具箱(Image Processing Toolbox)
3.实验图片 三、实验内容 (一)第一部分
1.图像的代数运算
选择两幅图像,一幅是源图像,一幅为背景图像,采用正确的图像代数运算方法,分别实现图像叠加、混合图像的分离和图像的局部显示效果。

(1)选取两幅大小一样 的图像1.jpg 和2.bmp ,将两幅图像进行加法运算。

程序如下:
clc; clear;
I1=imread('1.jpg'); I2=imread('2.jpg'); I1=im2double(I1); I2=im2double(I2); K=0.5*I1+0.5*I2;
subplot(1,3,1);imshow(I1);title('源图像');
subplot(1,3,2);imshow(I2);title('背景图像');
subplot(1,3,3);imshow(K);title('相加后的图像');
imwrite(K,'12.jpg');
(2)选择(1)中得到的混合图像12.jpg ,将混合 图像与背景图像2.jpg 做减法运算,得到源图像,程序如下:
clc; clear;
I3=imread('12.jpg'); I4=imread('2.jpg'); I3=im2double(I3); I4=im2double(I4); C=(I3-0.5*I4)*2;
subplot(1,3,1);imshow(I3);title('混合图像');
subplot(1,3,2);imshow(I4);title('背景图像');
subplot(1,3,3);imshow(C);title('分离后的图像');
(3)程序实现一 幅尺寸为300×300像素的灰度图像作为掩模模板,对于需要留下来的区域,掩模图像的像素值置为1,而在需要被抑制掉的区域,掩模图像的像素值置为0,程序如下:(可以使用图像3.jpg)
clc; clear;
I5=imread('3.jpg'); I5=im2double(I5); I=zeros(264,352,3); I(30:250,20:200,:)=1; D=I5.*I;
subplot(1,3,1);imshow(I5);title('源图像');
subplot(1,3,2);imshow(I);title('模板图像');
subplot(1,3,3);imshow(D);title('局部图像');
2.图像的缩放
对一幅图像实现按比例缩 小和不按比例任意缩小的效果,以及图像的成倍放大和不 按比例放大 效果。

选取一幅图像3.jpg ,分别将图像比例放大1.5倍,比例缩小0.7倍,非比例放大到620×380像素,非比例缩小到80×180像素。

程序如下: clc; clear; I1=imread('3.jpg'); I2=imresize(I1,1.5); I3=imresize(I1,0.7); I4=imresize(I1,[620,380]); I5=imresize(I1,[80,180]); figure; imshow(I1); title('源图像'); figure; imshow(I2);
title('比例放大1.5倍图'); figure; imshow(I3);title('比例缩小0.7倍图');
figure; imshow(I4);title('非比例放大图'); figure;
imshow(I5);title('非比例缩小图');
3.图像的旋转
将图像lena.tiff分别旋转45度和90度,与原图像相比,观察它们的区别。

读取图像lena.tiff,设置旋转角度分别 45度和90度,采用图像旋转函数imrotate对图像进行旋转,程序如下:
clc;
clear;
I=imread('lena.tiff');
J=imrotate(I,45);
K=imrotate(I,90);
subplot(1,3,1);
imshow(I);
title('源图像');
subplot(1,3,2);
imshow(J);
title('旋转45度图像');
subplot(1,3,3);
imshow(K);
title('旋转90度图像');
(二)第二部分
实验要求设计一个程序完成下列要求,图像可以自选,如lena.tiff:
1.给一幅图像加入密度为 0.06椒盐噪声后并与前一张图显示在同一图像对话框中;
2.给一幅图像加入均值为0,方差为0.01的高斯噪声后并与前一张图显示在同一图像
对话框中;
3. 运用for循环,将100幅加有噪声的图像进行相加并求其平均值,显示求平均后图像;
比较均值去噪方法对零均值高斯和椒盐两张噪声的去噪效果;
4.观察图像pout.tif的直方图;
5.利用matlab的imadjust函数实现的图像pout.tif对比度增强。

程序如下:
clc;clear;
[I,M]=imread('lena.tiff');
J=imnoise(I,'salt& pepper',0.06);
subplot(1,2,1),
imshow(I,M),
title('原图象');
subplot(1,2,2),
imshow(J,M),
title('加椒盐噪声后图象');
J1=imnoise(I,'gaussian',0,0.01);
figure;
subplot(1,2,1);
imshow(I,M);
title('原图像');
subplot(1,2,2);
imshow(J1,M);
title('加高斯噪声后图象');
K=zeros(512,512); K1=zeros(512,512); for i=1:100
J=imnoise(I,'gaussian',0,0.01); J2=imnoise(I,'salt & pepper',0.06); J1=im2double(J); J3=im2double(J2); K=K+J1; K1=K1+J3; end
K=K/100; K1=K1/100;
figure;imshow(K),title('高斯相加求平均后的图像');
figure;imshow(K1),title('椒盐相加求平均后的图像');
A=imread('pout.tif'); figure;
subplot(1,2,1), imshow('pout.tif');
title('原图像');%显示原图像 subplot(1,2,2), imhist(A),
title('对应直方图');
I = imread('pout.tif');
J = imadjust(I,[0.3 0.7],[]);
figure;
subplot(1,2,1);
imshow(I);
title('原图象');
subplot(1,2,2);
imshow(J);
title('对比后图像');
四、实验中遇到问题及解决方法
图像的名字要与输入程序的名字保持一致,而且取名字的时候不能与MATLAB里面的函数名字一样。

初步掌握了在MATLAB中如何读入和写入图像,还有如何获取图像的信息。

然后是如何存储图像。