数字图像处理实验报告2

更新时间:2023-11-07 06:17:01 阅读量: 教育文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

信息工程学院实验报告

课程名称: 数字图像处理

成 绩: 实验项目名称:实验二 数字图像基本运算 实验时间: 2014-09-12 指导教师(签名): 班级:电信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做减法运算,得到源图像,程序如下:

1

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; title('源图像'); clear; figure; I1=imread('3.jpg'); imshow(I2);

I2=imresize(I1,1.5); title('比例放大1.5倍图'); I3=imresize(I1,0.7); figure; I4=imresize(I1,[620,380]); imshow(I3);title('比例缩小0.7倍图');

I5=imresize(I1,[80,180]); figure; figure; imshow(I4);title('非比例放大图'); imshow(I1); figure;

2

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度图像');

3

(二)第二部分

实验要求设计一个程序完成下列要求,图像可以自选,如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('加高斯噪声后图象');

4

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('对应直方图');

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;

5

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中如何读入和写入图像,还有如何获取图像的信息。然后是如何存储图像。

6

本文来源:https://www.bwwdw.com/article/tm72.html

Top