数字图像处理 实验二

更新时间:2023-10-22 11:03:01 阅读量: 综合文库 文档下载

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

数字图像处理

实验报告二

学院:计算机与信息工程学院

班级:通信工程 学号:1208224034

姓名:李琰延

河南师范大学计算机与信息技术学院

计算机与信息工程学院综合性、设计性实验报告

专业:通信工程 年级/班级:2012级 2014—2015学年第一学期 课程名称 数字图像处理 指导教师 段新涛 学号姓名 1208224034 李琰延 实验地点 计科楼 216 实验时间 2014.10.14 项目名称 图像的代数运算 实验类型 综合性 一、实验目的

1.了解图像的算术运算在数字图像处理中的初步应用。

2.

体会图像算术运算处理的过程和处理前后图像的变化。

二、实验仪器或设备 (1) PC计算机

(2) MatLab软件/语言包括图像处理工具箱(Image Processing Toolbox) (3) 实验所需要的图片

三、总体设计(设计原理、设计方案及流程等)

1.设计原理:图像的代数运算是图像的标准算术操作的实现方法,是两幅输入图像之间进行的点对点的加、减、乘、除运算后得到输出图像的过程。如果输入图像为A(x,y)和B(x,y),输出图像为C(x,y),则图像的代数运算有如下四种形式:

C(x,y) = A(x,y) + B(x,y) C(x,y) = A(x,y) - B(x,y) C(x,y) = A(x,y) * B(x,y) C(x,y) = A(x,y) / B(x,y)

图像的代数运算在图像处理中有着广泛的应用,它除了可以实现自身所需的算术操作,还能为许多复杂的图像处理提供准备。例如,图像减法就可以用来检测同一场景或物体生产的两幅或多幅图像的误差。使用MATLAB的基本算术符(+、-、*、/ 等)可以执行图像的算术操作,但是在此之前必须将图像转换为适合进行基本操作的双精度类型。为了更方便地对图像进行操作,MATLAB图像处理工具箱包含了一个能够实现所有非稀疏数值数据的算术操作的函数集合。 2.设计方案及流程:

Step1:利用MATLAB软件进行图像的加法运算,如果要进行两幅图像的加法,或者给一幅图像加上一个常数,可以调用imadd函数来实现,也可以用imadd函数给图像的每一个像素加上一个常数增加图像的亮度。

河南师范大学计算机与信息技术学院

Step2:使用MATLAB中imsubtract函数可以实现图像地减法运算,将一幅图像从另一幅图像中减去,或者从一幅图像中减去一个常数。

Step3:使用MATLAB中的immultiply函数实现两幅图像的乘法。 Step4:用imdivide函数进行图像的除法运算。

Step5:综合使用多种图像代数运算函数来完成一系列的操作 3.实验步骤(包括主要步骤、代码分析等) <1>图像的加法运算

○1在MATLAB中,如果要进行两幅图像的加法,或者给一幅图像加上一个常数,可以调用imadd函数来实现。imadd函数将某一幅输入图像的每一个像素值与另一幅图像相应的像素值相加,返回相应的像素值之和作为输出图像。imadd函数的调用格式如下:

Z = imadd(X,Y)

其中,X和Y表示需要相加的两幅图像,返回值Z表示得到的加法操作结果。 图像加法在图像处理中应用非常广泛。例如,以下代码使用加法操作将两幅图像叠加在一起:

I = imread('flower.bmp'); J = imread('rice.bmp'); K = imadd(I,J); imshow(K); figure

imshow('flower.bmp'); figure

imshow('rice.bmp'); 叠加结果如下;

flower.bmp rice.bmp 叠加后

河南师范大学计算机与信息技术学院

○2给图像的每一个像素加上一个常数可以使图像的亮度增加。例如,以下代码将令rose.tif这幅图片的亮度提高或者降低的源程序以及亮度改变后的图片(依次是原图、亮度提高、亮度降低)如下: RGB = imread('rose.bmp'); RGB2 = imadd(RGB,50); RGB3=imadd(RGB,-50); imshow(RGB); figure imshow(RGB2); figure imshow(RGB3);

原图 提高亮度 降低亮度 <2>图像的减法运算

○1在MATLAB中,使用imsubtract函数可以将一幅图像从另一幅图像中减去,或者从一幅图像中减去一个常数。imsubtract函数将一幅输入图像的像素值从另一幅输入图像相应的像素值中减去,再将这个结果作为输出图像相应的像素值。imsubtract函数的调用格式如下:

Z = imsubtract(X,Y);

其中,Z是X-Y操作的结果。以下代码首先根据原始图像生成其背景亮度图像,然后再从原始图像中将背景亮度图像减去,从而生成所示的图像:

I= imread('cameraman.bmp'); background = (I,strel('disk',15)); cameraman2 = imsubtract(I, background); subplot(1,2,1);imshow(I);

subplot(1,2,2);imshow(cameraman2);

河南师范大学计算机与信息技术学院

○2如果希望从图像数据I的每一个像素减去一个常数,可以将上述调用格式中的Y替换为一个指定的常数值,例如:

I=imread('rose.bmp'); Z = imsubtract(I,50); imshow(I) figure imshow(Z)

<3>图像的乘法运算

在MATLAB中,使用immultiply函数实现两幅图像的乘法。immultiply函数将两幅图像相应的像素值进行元素对元素的乘法操作(MATLAB点乘),并将乘法的运算结果作为输出图形相应的像素值。immulitply函数的调用格式如下:

Z = immulitply(X,Y)

其中,Z=X*Y。例如,以下代码将使用给定的缩放因子对(a)所示的图像进行缩放,从而得到(b)所示的较为明亮的图像:

河南师范大学计算机与信息技术学院

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

Top