数字图像处理课程设计基于Matlab的数字图像处理Word文档下载推荐.docx
《数字图像处理课程设计基于Matlab的数字图像处理Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《数字图像处理课程设计基于Matlab的数字图像处理Word文档下载推荐.docx(14页珍藏版)》请在冰点文库上搜索。
![数字图像处理课程设计基于Matlab的数字图像处理Word文档下载推荐.docx](https://file1.bingdoc.com/fileroot1/2023-4/30/1959ec38-ee37-45a2-8a85-4e57874dad2c/1959ec38-ee37-45a2-8a85-4e57874dad2c1.gif)
五、参考文献………………………………14
摘要
图像运算涵盖程序设计、图像点运算、代数运算、几何运算等多种运算;
设计目的和任务:
1、熟悉图像点运算、代数运算、几何运算的基本定义和常见方法;
2、掌握在MTLAB中对图像进行点运算、代数运算、几何运算的方法
3、掌握在MATLAB中进行插值的方法
4、运用MATLAB语言进行图像的插值缩放和插值旋转
5、学会运用图像的投影变换和图像的剪切
6、进一步熟悉了解MATLAB语言的应用,将数字图像处理更好的应用于实际
7、通过各类算法加强图像各种属性
、
一、图像的几何运算何运算
图像代数运算是指对两幅或两幅以上输入图像对应的像素逐个进行和差积商运算以产生增强效果的图像。
图像运算是一种比较简单有效的增强处理手段是图像处理中常用方法。
四种图像处理代数运算的数学表达式如下:
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)
1图像加法运算一般用于多幅图像求平均效果,以便有效降低具有叠加性的随机噪声,在matlab中imadd用于图像相加,其调用格式为z=imadd(X,Y);
程序演示如下:
I=imread('
rice.png'
);
subplot(2,2,1),imshow(I),title('
原图像1'
J=imread('
cameraman.tif'
subplot(2,2,2),imshow(J),title('
原图像2'
K=imadd(I,J,'
uint16'
subplot(2,2,3),imshow(K,[]),title('
相加后图像'
2、图像减法运算也称差分运算,是用于检测图像变化及运动物体的方法;
用imsubtract函数实现。
图像乘法运算可以实现掩膜操作,已屏蔽图像某些部分,乘以常数被称为缩放,以显示不同明暗效果,应用函数为immultiply。
图像除法运算也成比例变换,运用函数imdivide,一般对图像进行归一化处理;
再进行乘除操作时一般使用double类型进行运算,immultiply(X,Y)可将对应像素值分别进行相乘,该函数可对每个像素值进行平方处理,为非线性操作,可使高亮度区对比度进一步增强,低亮度区对比度进一步减弱;
程序演示1:
图像加减乘除运算I=imread('
moon.tif'
J=imadd(I,50);
subplot(1,5,1),imshow(I);
title('
原图像'
subplot(1,5,2),imshow(J);
加法运算后图像'
J1=imsubtract(I,50);
subplot(153),imshow(J1);
减法运算图像'
J2=immultiply(I,2);
subplot(154),imshow(J2);
乘法运算图像'
J3=imdivide(I,2);
subplot(155),imshow(J3),title('
除法运算图像'
)
图片效果:
直方图操作能有效地用于图像增强。
除了提供有用的图像统计资料外,直方图固有的信息在其他图像处理应用中也是非常有用的,直方图是图像的最基本的统计特征,它反映的是图像的灰度值的分布情况。
直方图均衡化的目的是使图像在整个灰度值动态变化范围内的分布均匀化,改善图像的亮度分布状态,增强图像的视觉效果。
灰度直方图是图像预处理中涉及最广泛的基本概念之一。
图像的直方图事实上就是图像的亮度分布的概率密度函数,是一幅图像的所有象素集合的最基本的统计规律。
直方图反映了图像的明暗分布规律,可以通过图像变换进行直方图调整,获得较好的视觉效果
程序演示2:
X=imread('
pout.tif'
X=im2double(X);
Z=immultiply(X,X);
imshow(X),title('
原始图像'
),figure,imhist(X),title('
原始图像灰度直方图'
figure,imshow(Z),title('
平方后图像'
),figure,imhist(Z),title('
平方后图像灰度直方图'
图片演示效果图如下,可以明显看出亮度区域被展开,暗区域被进一步压缩。
3、图像绝对差值运算运用函数imabsdiff实现两幅图像的绝对差值运算,图像的类型应该相同,即把相同类型相同长度的数组的对应位分别做减法,返回结果是每一位差的绝对值,即返回类型相同;
图像求补运算运用函数imcomplement,适用于各种图像格式,取补操作是对每个像素值都取补,即用像素类型最大值减去像素值,得到最终结果,用于将目标与背景调换和对相片底片图像进行取补操作可得到真实景象。
subplot(131),imshow(I),title('
J=uint8(filter2(fspecial('
gaussian'
),I));
K=imabsdiff(I,J);
subplot(132),imshow(K,[]),title('
绝对差值后图像'
L=imcomplement(I);
subplot(133),imshow(L),title('
图像求反后'
二、图像几何运算
几何运算可改变图像中各物体之间的空间关系。
这种运算可以被看成是将(各)物体在图像内移动。
一个几何运算需要两个独立的算法。
首先,需要一个算法来定义空间变换本身,用它来描述每个像素如何从其初始位置“移动”到终止位置,即每个像素的“运动”。
同时,还需要一个用于灰度插值的算法,这是因为,在一般情况下,输入图像的位置坐标(x,y)为整数,而输出图像的位置坐标为非整数,反过来也如此。
因此插值就是对变换之后的整数坐标位置的像素值进行估计。
●1图像插值,matlab提供了三种差值方法:
1最邻近差值是最简便的插值,在这种算法中,每一个插值输出像素的值就是在输入图像中与其最临近的采样点的值。
最近邻插值是工具箱函数默认使用的插值方法f(x)=f(xk)1/2(xk-1+xk)<
x<
1/2(xk+xk+1)
2双线性插值,的输出像素值是它在输入图像中2×
2领域采样点的平均值,它根据某像素周围4个像素的灰度值在水平和垂直两个方向上对其插值。
3双三次差值,核为三次函数,其插值邻域的大小为4×
4。
它的插值效果比较好,但相应的计算量也比较大。
●图像噪声按噪声和信号之间关系分为乘性噪声和加性,按其与图像之间的相关性分为无关噪声和相关噪声;
为图像添加噪声函数调用为J=imoise(I,type,parameters)
程序演示:
saturn.png'
A=imnoise(I,'
0,0.02);
subplot(132),imshow(A),title('
加高斯噪声后图像'
B=imnoise(I,'
speckle'
0.02);
subplot(133),imshow(B),title('
加乘性噪声后图像'
●图像的旋转
在工具箱中的函数imrotate可用上述三种方法对图像进行插值旋转,默认的插值方法也是最邻近插值法,数字图像进行旋转时,各像素坐标将会发生变化,使得旋转之后不能正好落于整数坐标处,因此需进行差值。
Imrotate的语法格式为:
B
=
imrotate(A,angle,method)
函数imrotate对图像进行旋转,参数method用于指定插值的方法,,可选用的值为'
nearest'
(最邻近法),'
bilinear'
(双线性插值),'
bicubic'
(双三次插值),默认为'
。
一般说来旋转后的图像会比原图大
分别用不同插值旋转程序演示如下:
J1=imrotate(I,-45,'
J2=imrotate(I,45,'
'
crop'
J3=imrotate(I,45,'
loose'
figure,subplot(221),imshow(I),title('
subplot(222),imshow(J1),title('
顺旋转1'
subplot(223),imshow(J2),title('
逆旋转1'
subplot(224),imshow(J3),title('
逆旋转2'
●图像的缩放
函数调用B
imresize(A,m,method)
这里参数method用于指定插值的方法,可选用的值为'
,通过不同放大缩小会改变图片的清晰度。
kids.tif'
[m,n]=size(I);
J1=imresize(I,0.2);
J2=imresize(I,5,'
J3=imresize(I,[8*m8*n],'
figure,imshow(I),title('
Ô
Í
¼
Ï
ñ
'
imshow(J1);
imshow(J2);
imshow(J3)
●图像的投影变换
投影变换是将图像像素点的坐标变换成另一种像素点的坐标的过程,其调用函数为maketform,imtransform,
lena1.tiff'
T=maketform('
affine'
[.500;
.520;
001]);
I1=imtransform(J,T);
I2=size(J);
I3=zeros(I2
(1)*2,I2
(2)*0.5+I2
(2)*0.5);
fori=1:
I2
(1)
forj=1:
I2
(2)
I3(2*i,uint8(i*0.5+j*0.5))=J(i,j);
end
end
I3=uint8(I3);
subplot(131);
imshow(J);
subplot(132);
imshow(I1);
结构变换后图像'
subplot(133);
imshow(I3);
空间变换后图像'
图片显示效果:
●图像的裁剪
对于要处理图像,有时只关心一部分图像,所以需对整个图像进行处理,matlab中imcrop函数对图像进行剪切处理,可以大大提高处理效率。
circuit.tif'
I2=imcrop(I,[7568130112]);
figure,imshow(I);
figure,imshow(I2);
剪切后图像'
程序演示效果图:
课程设计总结与体会
通过本次课程设计,对数字图像处理有了更深一步的了解,学到了更多的东西;
并且通过多次实验探究对matlab能更好地运用,并且对数字图像处理更感兴趣。
通过实验了解数字图像处理要采用如此多的算法,而且它包括内容如此之丰富。
之前只是对图像运算很浅的认识,只运用了其中一部分,通过这次集中实验把图像运算的基本类型有了更细致了解。
现实生活中很对情况下需对图像进行处理,通过多次函数实现对图像进行变换修改,以使图片达到我们想要的效果,更好地运用于生活。
通过图像的加减乘除运算,可以轻松的处理图片的亮度变换,学会了函数的调用处理,通过加法操作可以降低图像中的随机噪声,也可以为图片增加亮度,增加说明信息等很有意思。
以前对乘除应用很少,通过这次设计进一步熟练了。
学会了对图像求补操作和绝对差值,其在现实生活中应用也是很多如照片底片的求反而得到真实图片。
而图像的几何运算更是丰富,可以根据我们不同的需要对图像进行各式各样的变换,大小形状位置等等通过不同函数都可以达到想要的效果。
对图像的剪裁和投影变换进一步运用了解。
通过学习设计体验到了程序运行结果的快乐,同时当程序运行失败时的失落,锻炼自己勇于发现错误,并耐心修改。
但同时发现很多不足和自己知识的匮乏,了解的总是那么少。
课程设计中要搜集好多资料并且一定要有耐心和学习精神。
数字图像处理课程包括有那么多知识需要去学习,需要自己勤于动手动脑,多练习。
学以致用即把自己所学用于实际,学习中体验快乐!
参考文献
●MATLAB数字图像处理第2版作者:
张德丰出版地:
机械工业出版社2012年3月
●基于MATLAB的图像处理案例教程作者:
高展宏徐文波出版地:
清华大学出版社2011年4月
●数字图像处理第3版作者:
RafaelC.Gonzalez阮秋琦阮宇智等译出版地:
电子工业出版社2011年6月
●数字图像处理作者:
霍宏涛出版地:
北京理工大学出版社2006年2月
●MATLAB数字图像处理作者:
刘刚出版地:
机械工业出版社2010年7月第一版第一次印刷