数字图像处理-代数运算课程设计
护理专业简历模板-我是一棵小草
数字图像处理课程设计
基于Matlab的数字图像处理
——图像的代数运算
院系
专业班级
学号
姓名
课程设计时间 2014年12月
目录
摘要……………………………………2
一.课程设计的目的…………………2
二.课程设计的原理…………………2
三.课程设计的实现(含测试调试过程)
(1)图像的加法运算„„„„„„2
图像加法运算的实现„„„„3
(2)去除叠加噪声„„„„„„„5
去除叠加噪声的实现„„„„5
(3)图像的减法运算„„„„„„6
图像减法运算的实现„„„„7
(4)图像的乘法运算„„„„„„9
图像乘法运算的实现„„„„9
(5)图像的除法运算„„„„„„10
图像除法运算的实现„„„„11
四.课程设计的总结………………13
五.参考文献………………………13
1
摘要
图像的代数运算具有明显的物理意义,本篇主要介绍了matlab的一些基
本的
运算,线性代数中矩阵的一些基本运算,matlab图像的工具箱已经为
我们提供了相关函数用于图像
的加减乘除,它们分别是imadd、imsubtract、
immultiply、imdivid
e,这些函数将自动处理图像运算过程中的溢出。
通过设计matlab进行图像的亮度对比变化
、亮度的缩小放大和旋转,直
方图统计和直方图均衡以及加入各种噪声,使用各种程序和函数,来完成<
br>上述各种程序和函数,来完成上述各种功能,并对结果进行分析和调试。
总结了程序调试的经验以
及各个函数的使用技巧,很好的实现了图像的处
理功能。
一、 课程设计的目的
1.理解代数运算的基本定义和常见方法。
2.掌握matlab对图像代数运算的方法。
3.体会图像代数运算处理过程中以及处理前后的对比。
二、 课程设计的原理
是
指对两幅输入图像进行点对点的加、减、乘或除运算而得到输出图像的
运算。对于相加和相乘的情形,可
能不止有两幅图像参加运算。在一般情
况下,输入情况之一可能为常数。
四种图像处理代数运算的数学表达式如下:
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)
其中A(x,y)和B(x,y)为输入图
像,而C(x,y)为输出图像。还可以通过
适当的组合形成涉及几幅图像的复合代数运算方程。
在MATLAB中,我们可以用函数简单的得到数字图像的图像数据矩阵
(即A(x
,y)和B(x,y)),有了这些矩阵后我们只要适当的设计代数运算的
形式并写出方程,就可以得到
一个输出图像的矩阵(即C(x,y) 图像相加的
一个重要应用是对同一场景的多幅图像求平均值。这
点被经常用来有效的
降低加性随机噪声的影响。
三、 课程设计的实现
1.图像的加法运算
2
图像相加可以得到图像叠加效果,也可以把同一景物的多重影像加起来
求平均以减少图像的随机噪声。
matlab中提供的imadd函数用于实现图像的加法运算,其调用格式如下:
Z=imadd(X,Y):将矩阵X中的每一个元素与矩阵Y中对应元素相加,返
回值Z。X和Y的维
数和数据类型相同,或者Y为一个数值型常数。除了X
为二进制常数时,Z返回双精度外,Z的维数和数
据类型与Y相同。如果X
和Y 为整数矩阵,运算结果可能超出数据类型支持的范围(即溢出),这时<
br>matlab自动将数据截断为数据类型所支持的最大值。
在进行图像的加法运算时,需要注意以下三点。
(1)当X,Y对应元素和大于256时,Z仍取25
5;如果Y为多精度标量时,
Z将对小数部分取整。
(2)为了避免出现大于255的切除效果,可将Z储存为uint16。
(3)但只有X,
Y,Z的类型为logical,uint8或single,且三者类型相同
时,IPPL才会激活。
当Y为双精度时,X,Z为uint8,int16或single,且
类型相同时IPPL也会激活。
图像加法运算的实现
以下代码使用加法运算将图中a,b两幅图叠加在一起
I = imread('');
J = imread('');
K =
imadd(I,J,'uint16');
subplot(2,2,1),
imshow(I)
subplot(2,2,2), imshow(J)
subplot(2,2,3), imshow(K,[])
3
图像整体亮度增加:一个图像和一个常数的求和。
I = imread('');
J=imadd(I, 50);
subplot(1,2,1), imshow(I)
subplot(1,2,2),
imshow(J)
4
2.去除叠加噪声
在实际应用中,要得到一静止场景或物体的多幅图像是比较容
易的。如
果这些图像被一加性随机噪声源所污染,则可通过对多幅静止图像求平均
值来达到消除
或降低噪声的目的。在求平均值的过程中,图像的静止部分
不会改变,而由于图像的噪声是随机性的,各
个不同的噪声图案积累的很
慢,因此可以通过多幅图像求平均值降低噪声的影响。
matlab中提供的imnoise函数用于为图像的添加噪声效果,其调用格式
如下。
J=imnoise(I,type):按照指定类型在图像I上添加噪声。字符串参量
type表示噪
声类型。
type对应的噪声类型:
‘gaussian’高斯白噪声,参数m,v分别表示均值和方差
‘localvar’
0均值高斯白噪声,参数v表示局部方差
‘poisson’ 泊松噪声
‘salt&pepper’ 椒盐噪声,参数d表示噪声密度
‘speckle’ 乘法噪声
J=imnoise(I,type,parameters):根据不同的噪声类型,添加不同的
噪声参数。所有噪声参数都被格式化,与灰度图像均值在0~1之间的图像
相配。
去除叠加噪声的实现:
例如:利用imnoise函数对噪声进行相加运算。
I=imread('');
I1=imnoise(I,'gaussian',0,0.006);
I2=imnoise(I,'gaussian',0,0.006);
I3=imnoise(I,'gaussian',0,0.006);
I4=imnoise(I,'gaussian',0,0.006);
%I5=imnoise(I,'gaussian',0,0.006);
K=imlincomb(0.25,I1,0.25,I2,0.25,I3,0.25,I4);
subplot(1,3,1);imshow(I);
xlabel('(a)原始图像');
subplot(1,3,2);imshow(I2);
xlabel('(b)添加噪声图像');
subplot(1,3,3);imshow(I3);
xlabel('(c)叠加后的图像');
5
图像的平均是一种重要的应用在天文学,在该领域,由于在非常低的照
度下成像经
常会经常导致传感器噪声,以至于单幅图像无法分析。相加是
连续积分离散形式。在天文观测中,一种与
刚刚描述的方法等同的处理是
使用CCD或者类似传感器的积累能力,通过长时间观察同一场景来达到降
噪的目的。冷却也常常用于降低传感器噪声。然而,最终结果类似于对一
组噪声数字图像进行平
均操作。
3. 图像的减法运算
图像减法运算也称为差分方法,其为一种常用
于监测图像变化及运动物
体的图像的处理方法。图像减法可以为许多图像处理过程中的准备步骤。
例如,可以使用图像减法来检测一系列同场景的图像差异。用图像减法处
理图像时,往往考虑北京的更
新机制,尽量补偿因天气、光照等因素对图
像显示效果造成的影响。
【1】消除不需要的叠加性图案。 在进行图像处理时,往往突出所研究的
对象而需要清楚图像
的背景,例如,在生物试验中,在显微镜下观察生物
的组织切片时,如果观测物太小,显微镜本身的光学
系统所带来的影响十
分明显,去除背景效果,能够去除部分系统影响,突出观测物本身,获取
物
体镜像后,移开物体再获得空白区域的图像,两幅图相减即可获得物体
6
本身的图像
【2】差影法。 所谓差影法,实际上就是图像的相减运算,指同一景物在
不同时间拍摄的图像或同一景物在不同波段图像相减。差值图像提供了图
像间的差异信息,能用于指导
动态监测,运动目标的检测和跟踪、图像背
景的消除及目标识别等。差影法在自动现场检测,消除背景中
其主要作用。
【3】求梯度幅度。 在一幅图中,灰度变化大的区域梯度值大,一般认为
此区
域是图像内物体的边界(别的地方也可能会出现灰度值变化很大的情
况,但在图像处理时通常认为是比较
关心的边界问题)。因此求图像的梯度
图像获得图像物体边界。
matlab中提供的i
msubtract和imabsdiff函数用于完成图像的减法运
算,调用格式如下:
Z=imsubtract(X,Y):
将X矩阵中的每一个元素减去矩阵Y中对应元素,
返回值为Z。
Z=imabsdiff(X,Y): 差值结果取绝对值。
图像减法运算的实现:
例如:利用imsubtract以及imabsdiff函数对图像进行减运算。
I=imread('');
background=imopen(I,strel('disk',15));
I1=imsubtract(I,background);
subplot(2,2,1);imshow(I);
xlabel('(a)原始图像');
subplot(2,2,2);imshow(background);
xlabel('(b)背景图像');
subplot(2,2,3);imshow(I1);
xlabel('(c)imsubtract函数相减结果');
K=imabsdiff(I,background);
subplot(2,2,4);imshow(K,[]);
xlabel('(d)imabsdiff函数相减结果');
7
例如:降低RGB图像的亮度。
RGB=imread('');
RGB2=imsubtract(RGB,50);
subplot(1,2,1);imshow(RGB);
xlabel('(a)原始RGB');
subplot(1,2,2);imshow(RGB2);
xlabel('(b)降低亮度后RGB');
8
4.图像的乘法运算
两幅图像进行乘法运算可以实现掩模
操作,及屏蔽掉图像的某些部分。
一幅图像乘以一个常数通常被称缩放,这是一种常见的图像操作。如果
使
用的缩放因素大于去1,图像将变亮,如果小于1则图像会变暗。缩放操作
通常会产生比简单
添加像素偏移量自然得到明暗效果。这是因为该操作能
够更好地维持图像的相关对比度。此外,由于时频
的卷积或相关运算与频
域的乘积或相关运算与频域乘积运算对应,因此乘法运算有时也成为一种
技巧用于实现卷积或相关处理。
matlab中提供的immultiply函数用于实现图像的乘运算,其调用格式如
下。
Z=immultiply(X,Y): 将矩阵X中每一个元素乘以矩阵Y中对应元素,
返回值为Z。
图像乘法运算的实现:
例如 图像的乘法效果。
I=imread('');
9
I1=uint16(I);
I2=immultiply(I1,I1);
I3=immultiply(I,1.2);
I4=immultiply(I,0.6);
subplot(2,2,1);imshow(I);
xlabel('(a)原始图像');
subplot(2,2,2);imshow(I2);
xlabel('(b)图像自乘');
subplot(2,2,3);imshow(I3);
xlabel('(c)图像扩大像素');
subplot(2,2,4);imshow(I4);
xlabel('(d)图像缩小像素');
5.图像的除法运算
除法运算可用于成像设备的非线性影响,在特殊的图像(如
断层扫描等
医学图像)处理中经常用到。图像除法也可以用来检测两幅图像的区别,
10
但是除法操作给出的是相应像素值的变换比率,而不是每个像素的绝对差异,因而图像的除法操作也称为比率变换。
matlab中提供的imdivide函数用于实现图像除法,其调用格式如下。
Z=imdivide(X.Y):将矩阵X中每一个元素除以矩阵Y中对应元素,返回
值为Z。
图像除法运算的实现:
例如: 对进行除法运算。
lena=imread('');
I=double(lena);
J=I*0.85+80;
lena2=uint8(J)
Ip=imdivide(lena,lena2);
imshow(Ip,[]);
11
例如
将图像分别与背景及常数进行相除。
I=imread('');
subplot(2,2,1);imshow(I);
xlabel('(a)原始图像');
background=imopen(I,strel('disk',15));
I1=imdivide(I,background);
subplot(2,2,2);imshow(I1,[]);
xlabel('(b)图像与背景消除效果');
J=imdivide(I,2);
subplot(2,2,3);imshow(J);
xlabel('(c)图像与2消除效果');
K=imdivide(I,0.5);
subplot(2,2,4);imshow(K);
xlabel('(d)图像与0.5消除效果');
12
四.课程设计的总结
本次课程设计了解并掌握了图
像处理的基本运算。现在能够运用图像代
数运算相关知识降低图像中多幅图像中所含叠加性质的随机噪声
;能够提
高或降低图像的亮度;能够将图像分别与背景及常数进行相除;能够掩模
操作,及屏蔽
掉图像的某些部分。自己需要熟悉matlab函数熟练运用
matlab函数,并与原图像效果进行比
较,便可以看出来他们的作用。
这次课程设计不仅检验了我所学内容,而且还让我懂得了如何自
己学
习。体现出自己单独设计的能力以及综合运用知识的能力,体会了学以致
用,突出自己劳动
成果的喜悦心情。从中发现自己平时学习的不足和薄弱
环节,从而加以弥补。实践出真知,通过亲自动手
制作,使我们掌握的知
识不再是纸上谈兵。过而能改,善莫大焉。在课程设计过程中,我们不断
发现错误,不断改正,不断领悟,不断获龋最终的检测调试环节,本身就
是在践行“过而能改,善莫大焉
”的知行观。让我明白了学无止境。
五.参考文献
[1]
周品,MATLAB图像处理与图形用户界面设计,北京,清华大学出版社,
2013
[2]
闫敬文,数字图像处理(MATLAB版),北京,机械工业出版社,2007
[3]
夏良正,数字图像处理,南京,东南大学出版社,1999
13