版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、 湖南商学院课程设计课程名称图形图像处理题目冬像的几何变换系部数学与统计学院专业信息与计算科学班级信息与计算科学1301学号学生姓名任课教师王勇2016年月日目录第一章绪论1非彩色图像在Matlab中的矩阵32彩色图像在Matlab中的矩阵4第二章图像的镜像变换1图像的水平方向镜像52图像的垂直方向镜像8第三章图像的旋转变换1图像的旋转变换10第四章图像的转置变换1非彩色图像的转置变换133彩色图像的转职变换13第五章图像的缩放变换1双线性内插法简介152图像的缩放16第六章图像的平移变换1图像的平移变换19第一章绪论1非彩色图像在Matlab中的矩阵非彩色图像可以定义为一个二维函数f(x,y
2、),其中x和y是Euclid空间(平面)坐标,任意一个二元组(x,y)处的值f称为该点处的强度或者灰度。当x,y和灰度值f是离散的数值时,我们称改图像为数字图像。每一个非彩色图像在Matlab中都是一个二维矩阵A,而我们知道变换是nxm指集合自身到自身的映射,所以对非彩色图像的变换其实质就是对二维矩阵Anxm进行变换得到另一个二维矩阵B的过程。例如图像1.1nxm图1.1其在Matlab中的表示:A=imread(Fig3.24.jpg);%A是一个298行252列的矩阵。size(A)ans=2982522彩色图像在Matlab中的矩阵不同于非彩色图像,每一个彩色图像在Maltab中都是三维
3、矩阵A。例如nxmxs图像2.1图2.1A=imread(Koala.jpg);size(A)ans=76810243示意图:A是一个三维矩阵,768行1024列3层,3层是RGB三色的数值。第二章图像的镜像变换1图像的水平方向镜像1.1对于非彩色图像实现水平镜像操作,我们每次只需提取一列,使其与对称的列交换位置即可:a1ja1ia2ja2ianjani其中j二m-i+1原图像经过变换后为:amamam-1aa1.1a2.1例1:对132152210991721023110an,man,m-1进行水平方向镜像。m-1132152_-210-210152132A=99,A=172,A,A=10,
4、AA=10172992311055110231.2对于彩色图像的水平镜像类比二维的操作,我们每次按行选取一个面,将每个面与其列对称的位置交换即可:a1,j,3a2,j,3an,丿,3a1,i,3a2,i,3acn昇,3aaaaaa1,j,22,j,2-rn,丿,21,i,22,i,2rn昇,2aaaaaa1,j,12,j,1n,j,11,i,12,i,1*1n昇,1其中j=m一i+1aaa1m32m3nm3aaa1m22m2nm2aaa1m12m1nml原图像经过变换后得:aaaaaa1,2,3223n23113213n13aaa9aaa1,2,2222n22112212n12aaaaaa1-
5、1,2,1221n21-L111211n11-是否为彩色(读入图像获取矩阵规模1.3Matlab实现彩色镜像是输出图像非彩色镜像Matlab源程序disp(Horizontalimagebyinversion;(水平镜像);str=input(请输入图片名称(例如:Koala.jpg):n,s);imA=imread(str);originalA=size(imA);n=size(originalA);rowA=originalA(1);colA=originalA(2);ifn(2)=3imB=zeros(rowA,1,3);fori=1:colAimB=imA(:,i,:),imB;end
6、endifn(2)=2imB=zeros(rowA,1);fori=1:colAimB=imA(:,i),imB;endendsubplot(l,2,l);imshow(imA);subplot(1,2,2);imshow(imB);CommandWindow运行:HorlzorLtalimagebyinversion;(:水平镇?象)请输入團片容称(例如:Koala.jpg;5:Fig324jpgElapsedtimeis10.653000secondE;.Horizontalimagebyinversion;$水平這樣)语输鏡片名称(s.Koala,jpg):Koala,jpgElapse
7、dtimeis5698000seconds2图像的垂直方向镜像2.1与第一节类似的对于非彩色图像实现垂直镜像操作,我们每次只需提取一行,使其与对称的列交换位置即可:aaj1j2.ajnain其中j=m一i+1原图像经过变换后为:an,1an-1,1an,2an-1,2a1,1a1,2an,n.an-1,1.a1,n2.2对于彩色图像的垂直镜像我们每次按列选取一个面,将每个面与其行对称的位置交换即可:aaaaaaj,1,3j,2,3j,n,3i,1,3i,2,3ci,n,3aaaaaaj,1,2j,2,2cj,n,2i,1,2i,2,2ci,n,2aaaaaaj,1,1j,2,11j,n,1i,
8、1,1i,2,11i,n,1-1其中j=m-i+1原图像经过变换后得:aa.an,1,3n,2,3n,m,3aa.an,1,2n,2,2n,m,2aa.an,1,1n,2,1n,m,1aa.a2,1,32,2,32,m,3aa.a2,1,22,2,22,m,2aa.a2,1,12,2,12,m,1aa.a1,1,31,2,31,m,3aa.a1,1,21,2,21,m,2aa.a1,1,11,2,11,m,1-2.3Matlab实现:Matlab源程序:disp(Verticalimagebyinversion(垂直镜像);str=input(请输入图片名称(例如:Koala.jpg):n,s
9、);imA=imread(str);originalA=size(imA);n=size(originalA);rowA=originalA(l);colA=originalA(2);ifn(2)=3imB=zeros(1,colA,3);fori=1:rowAimB=imA(i,:,:);imB;endendifn(2)=2imB=zeros(1,colA);fori=1:rowAimB=imA(i,:);imB;endendsubplot(2,1,1);imshow(imA);subplot(2,1,2);imshow(imB);CommandWindow运行Verticalimageby
10、inversion垂直籲像)请输入.图片售称(例如:Koala,jpg):Fig3.24.jpgElapsedtimeis1971000e已condsVerticalimagebyinversicmc垂直橫像)图片名称(例如:Koala,jpg):Koala,jpgElapsedtimeis5705000seccmds第三章图像的旋转变换1图像的旋转变换对于任意nxm的图像矩阵,我们首先创建一个假想矩阵,大小是原矩阵对角线的长度。原矩阵中的中心点为:colrowxo二pyo(处理时需取整):Koala,jpgi青输入角度theta(单位:度)-60theta=-60缺陷分析:输出图中出现许多规
11、则分布的空洞,可知在旋转过程中非整数的点被化为整数点时失去一部分点的灰度值,这些灰度值其实可以通过插值弥补,为了使程序较为简单,笔者就没有进行修正。第四章图像的转置变换1非彩色图像的转置(Transpose)变换非彩色图像的转置变换非常简单只需把原图像矩阵转置即可TOC o 1-5 h z HYPERLINK l bookmark24 o Current Document aaa11121mB=ATaa-aA=21222maan1n2anm2彩色图像的转置变换因为彩色图像是三维矩阵,我们每次进行一层的转置,最后可以得到全图的转置。Matlab程序a1,1,1a1,2,1a1,m,1a2,1,1
12、a2,2,1a2,m,1an,1,1an,2,1an,m,1a1,1,2a1,2,2a1,m,2a2,1,2a2,2,2a2,m,2an,1,2an,2,2an,m,2-a1,1,3a1,2,3a1,m,3a2,1,3a2,2,3a2,m,3an,1,3an,2,3an,m,3-A2A3A1A=At1A=At2A=At3disp(TransposeOfAImage);str=input(请输入图片名称(例如:Koala.jpg):n,s);imA=imread(str);originalA=size(imA);n=size(originalA);rowA=originalA(1);colA=o
13、riginalA(2);ifn(2)=3imB=zeros(colA,rowA,3);0750 l4imB(:,:,l)=imA(:,:,l);imB(:,:,2)=imA(:,:,2);imB(:,:,3)=imA(:,:,3);endifn(2)=2imB=imA;endsubplot(l,2,l);imshow(imA);subplot(l,2,2);imshow(uint8(imB);CommandWindowTransposeOfAImage请输入图片名称例如:Koala,jpg):Fig3.24.jpgElapsedtimeis化S84000secondsTraiiEposeOfA
14、.I皿age请输入图片名称(例如:jpg):Koala,jpgElapsedtimeis6.SI1000e亡匚onds.第五章图像的缩放变换1双线性内插法简介在放大、收缩等变换和几何校正的任务重内插是被广泛应用的基本工具。这一节我们主要介绍双线性内插法,为接下来图像的缩放做铺垫。在双线性内插法中,我们用4个最近邻去估计给定位置的灰度。令x,y表示想要赋以灰度值的位置,令v表示灰度值。对于双线性内插,类似线性插值,我们同时对两个自变量进行插值,赋值公如下:f(x,y)沁fyi)(X-x)(y-y)+f(W(x-x)(y-y)(x-x)(y-y)22(x-x)(y-y)12121(x-x)(y-y
15、)1(x-x)(y-y)11212121212-丄f(x,y)()(、丄f(x,y)+L(x-x)(y-y)+(x-x)(y-y)22121事实上:1112212211f(x2,y1),f(x2,y2)来表示f(x,y)的值。我们先对x做2个数据的拉格朗日插值:f(x1,叮回忆两个点时的拉格朗日插值(线性插值):(3.1.1)f(x)f(x)+Az!f(x)x-x2x-x12121此时f的值与两个变量有关,我们先选定一个变量为常数,于是令y二y,带入(3.1.1):1f(x,y)二xx1f(x,y)+丄一xf(x,y)(3.1.2)1xx21xx112121令y二y,带入(3.1.1):2再令
16、X=Xif(X,y2)二(i=1,2):x-Xx-X、4f(x,y)+2f(X,y)x-x22x-x122121(3.1.3)y-yy-y“、(3.1.4)亠f(x,y)+2f(x,y)yyi2yyi12121最后把(3.1.2)(3.1.3)带入(3.1.4)得:(X-X1)(y2-y)TOC o 1-5 h zf(x,y)一f(T人)-(x-x)(y-y)+;(x-X)(y-y)22(X-X)(y-y)21212121丄f(x,y)()(、丄f(x,y)()()+(x-x)(y-y)+(x-x)(y-y)(x-x)(y-y)21(x-x)(y-y)1121212121这样通过邻近四个点的灰
17、度值可以对目标点估计灰度值。2图像的缩放2.1有了双线性内插法作为工具,我们下面来进行图像的缩放变换。假设一个大小500*500的像素的图像要放大1.5倍到750*750的像素。一种简单的思想是,先创建一个假想的750*750网格,它与原始图像有相同的间隔(一般是1),然后将其收缩、压缩,使它精确地与原图像匹配成500*500。显然,收缩后的假想图像的间隔比原图像的间隔要小。每个假想图像的相同间隔的灰度值应该与原图像相等,而假想图像间隔小,所以存在未被赋灰度值的像素点,这时我们米取双线性内插法进行赋值。假想图0750原图500500050022Matlab源程序I=imread(Koala.j
18、pg);%读入原图像,只需将此处的文件换成要变换的图片即可rows,cols=size(I);K1=str2double(inputdlg(请输入行缩放倍数,INPUTscalefactor,1,0.5);K2=str2double(inputdlg(请输入列缩放倍数,INPUTscalefactor,1,0.4);width=K1*rows;height=K2*cols;Out=uint8(zeros(width,height);%创建输出图像矩阵widthScale=rows/width;heightScale=cols/height;forx=6:width-6%6是为了防止矩阵超出边界
19、溢出fory=6:height-6oldX=x*widthScale;%oldX,oldY为原坐标,x,y为新坐标oldY=y*heightScale;讦(oldX/double(uintl6(oldX)=1.0)&(oldY/double(uintl6(oldY)=1.0)Out(x,y)=I(int16(oldX),int16(oldY);%若oldX,oldY为整数,直接赋值elsea=double(uint16(oldX);b=double(uint16(oldY);x11=double(I(a,b);x12=double(I(a,b+1);x21=double(I(a+1,b);x2
20、2=double(I(a+1,b+1);%x11赋值为I(a,b)%x12赋值为I(a,b+1)%x21赋值为I(a+1,b)%x22赋值为I(a+1,b+1)Out(x,y)=uint8(b+1-oldY)*(oldX-a)*x21+(a+1-oldX)*x11)+(oldY-b)*(oldX-a)*x22+(a+1-oldX)*x12);%用双线性插值计算公式计算endendendimshow(I);figure;imshow(Out); l9CommandWindow运行:.-Inix|FEVIiTBeH四0Hw原图行列分别缩小为0.5,0.4allmagEPra匚se三.DOCKFile2CT16.囚.jpgJP0File3D1G:antallnwrsinnmM-lilB2016FlilypsL-ulbuIME_2O16-5-.JPGFib2O1G油Ieq.mu.SVFile2016tstEMJ.mM-fils2J1GsnsposB.gsvA5VFile2(716-in;!EdL:Vi*vIxorlTiflisDmIcIoihn抵/Hjf帝日吕few原图行列分别放大为2,2第六章图像的平移变换我们
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 钦北区2023-2024年部编版九年级上学期语文期中试卷
- 九年级上学期语文期中考试卷
- 第三中学八年级上学期语文第二次质量检测试卷
- 结构加固合同范本(2篇)
- 《数学物理方法》第5章测试题
- 南京航空航天大学《单片微控制器原理及应用》2022-2023学年期末试卷
- 南京工业大学浦江学院《商业银行经营与管理》2023-2024学年第一学期期末试卷
- 分式的约分说课稿
- 吨的认识说课稿
- 南京工业大学浦江学院《管理学原理》2023-2024学年第一学期期末试卷
- 2024年四川省内江市中考英语试题(含答案)
- (完整版)小学生卫生常识课
- 股权协议书和合伙人协议书
- DZ∕T 0382-2021 固体矿产勘查地质填图规范(正式版)
- 音乐鉴赏(西安交通大学) 知到智慧树网课答案
- 小学体育课学生学情分析报告
- 苏科版初中生物试讲演课面试
- 服装企业安全台账2
- 国内研究现状及发展趋势分析
- 建筑施工高处作业安全技术规范JGJ80-201620200805
- 细菌分类表按“界门纲目科属种”分类
评论
0/150
提交评论