




已阅读5页,还剩3页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
计算机视觉课程设计实验报告1题 目: 图 像 变 形2组 员:曹英(E) 叶超(E) 李淑珍(E)3实验目的:掌握图像几何运算中变形算法4实验原理:对两幅图分别进行卷绕、插值,每幅图得到一序列图片,然后对这些序列图片进行加权求和,得到一序列帧,再将其显示出来,就得到了由一幅图到另一幅图的变形。5实验步骤:对一幅图分别选4行4列的16个控制点,在每条边上进行五等分,每条边形成六个点,加上原来的16个就是36个控制点,这样就把它分成了不规则的25小块,对每小块进行卷绕、插值,本实验我们用的是最近邻插值,目标控制点就是将图片分成标准并且相同大小的25小块的36个点。这样会得到一幅不规则图片,让它作为新的原图进行如前所述一样的处理,控制点都是这样自动产生的:一开始所选每个控制点到相应标准控制点等距离(本实验我们是分成9等分)产生一序列的36个控制点。这样每产生一幅图都对它进行相类似的处理,控制点的产生方法就是上面所说的那样。得到的一序列图片越来越接近原图,最后一幅与原图一样。这样我们就可以得到这样的一序列图片:原图,手工选控制点进行处理后得到的不规则图,循环产生控制点得到的越来越接近原图的9幅图(最后一幅与原图一样)。为了描述的方便,这里我把它编号为1_1到1_11。对目标图进行与原图一样的处理。编号也类似,即2_1到2_11。最后进行加权求和,第一帧是原图,第二帧是1_10与2_2加权求和,其中1_10的权值是0.9,2_2的权值是0.1,第三帧是1_9与2_3加权求和,其中1_9的权值是0.8,2_3的权值是0.2,第十帧是1_2与2_10加权求和,其中1_10的权值是0.1,2_2的权值是0.9,第十一帧是目标图。这样就得到了所要的结果。这里需要说明的是两幅手工选择的控制点最好是那些有代表性的特征点,这样的话结果会更好。下面的程序的源代码:clear all; clc;x1=imread(im1.jpg);x2=imread(im2.jpg);m,n,p=size(x1);subplot(2,2,1),imshow(x1);subplot(2,2,2),imshow(x2);x1=double(x1);x2=double(x2);newx=;newy=;%在图片上选36个点将图片分成标准并且相同大小的25小块for k=1:36 newx(k)=fix(n/5)*(mod(k-1,6)+1; newy(k)=fix(m/5)*fix(k-1)/6)+1; end%对原图进行分块for k=1:36 switch k case 1,2,3,4,5,6,7,12,13,18,19,24,25,30,31,32,33,34,35,36 %边界上的点还是标准的等分点 oldx1(k)=newx(k); oldy1(k)=newy(k); otherwise %在图片中选择4行4列的16个控制点 oldx1(k),oldy1(k)=ginput(1); hold on; subplot(2,2,1),plot(oldx1(k),oldy1(k),o); endend%对目标图进行分块,方法同上for k=1:36 switch k case 1,2,3,4,5,6,7,12,13,18,19,24,25,30,31,32,33,34,35,36 oldxx1(k)=newx(k); oldyy1(k)=newy(k); otherwise oldxx1(k),oldyy1(k)=ginput(1); hold on; subplot(2,2,2),plot(oldxx1(k),oldyy1(k),*); endend%对第一张进行卷绕,插值for i=1:29 newspic=; if mod(i,6)=0 for j=1:4 %每个小块分别处理 if j=1 newspic=1 newx(i) newy(i) newx(i)*newy(i); elseif j=2 newspic=newspic;1 newx(i+1) newy(i) newx(i+1)*newy(i); elseif j=3 newspic=newspic;1 newx(i) newy(i+6) newx(i)*newy(i+6); elseif j=4 newspic=newspic;1 newx(i+1) newy(i+7) newx(i+1)*newy(i+7); end end oldx1_1=oldx1(i);oldx1(i+1);oldx1(i+6);oldx1(i+7); %卷绕 oldy1_1=oldy1(i);oldy1(i+1);oldy1(i+6);oldy1(i+7); cofx=inv(newspic)*oldx1_1; cofy=inv(newspic)*oldy1_1; for k=newy(i):newy(i+6) %进行最近邻插值 for l=newx(i):newx(i+1) for rgb=1:3 testx=1,l,k,k*l*cofx; testy=1,l,k,k*l*cofy; if round(testx)1 | round(testy)n | round(testy)m pic1(k,l,rgb)=0; else pic1(k,l,rgb)=x1(round(testy),round(testx),rgb); end end end endendend%后面的连续桢(9帧)for Q=1:9for k=1:36 switch k case 1,2,3,4,5,6,7,12,13,18,19,24,25,30,31,32,33,34,35,36 oldx2(k)=newx(k); oldy2(k)=newy(k); otherwise %用循环控制产生新的控制点 oldx2(k)=(newx(k)-oldx1(k)*Q/9+oldx1(k); oldy2(k)=(newy(k)-oldy1(k)*Q/9+oldy1(k); endendfor i=1:29 %下面是卷绕,插值,方法同上 newspic=; if mod(i,6)=0 for j=1:4 if j=1 newspic=1 newx(i) newy(i) newx(i)*newy(i); elseif j=2 newspic=newspic;1 newx(i+1) newy(i) newx(i+1)*newy(i); elseif j=3 newspic=newspic;1 newx(i) newy(i+6) newx(i)*newy(i+6); elseif j=4 newspic=newspic;1 newx(i+1) newy(i+7) newx(i+1)*newy(i+7); end end oldx2_1=oldx2(i);oldx2(i+1);oldx2(i+6);oldx2(i+7); oldy2_1=oldy2(i);oldy2(i+1);oldy2(i+6);oldy2(i+7); cofx=inv(newspic)*oldx2_1; cofy=inv(newspic)*oldy2_1; for k=newy(i):newy(i+6) for l=newx(i):newx(i+1) for rgb=1:3 testx=1,l,k,k*l*cofx; testy=1,l,k,k*l*cofy; if round(testx)1 | round(testy)n | round(testy)m pic2(k,l,rgb,Q)=0; else pic2(k,l,rgb,Q)=x1(round(testy),round(testx),rgb); end end end endendendend%对第二张进行卷绕,插值,方法同上for i=1:29 newspic=; if mod(i,6)=0 for j=1:4 if j=1 newspic=1 newx(i) newy(i) newx(i)*newy(i); elseif j=2 newspic=newspic;1 newx(i+1) newy(i) newx(i+1)*newy(i); elseif j=3 newspic=newspic;1 newx(i) newy(i+6) newx(i)*newy(i+6); elseif j=4 newspic=newspic;1 newx(i+1) newy(i+7) newx(i+1)*newy(i+7); end end oldxx1_1=oldxx1(i);oldxx1(i+1);oldxx1(i+6);oldxx1(i+7); oldyy1_1=oldyy1(i);oldyy1(i+1);oldyy1(i+6);oldyy1(i+7); cofx=inv(newspic)*oldxx1_1; cofy=inv(newspic)*oldyy1_1; for k=newy(i):newy(i+6) for l=newx(i):newx(i+1) for rgb=1:3 testx=1,l,k,k*l*cofx; testy=1,l,k,k*l*cofy; if round(testx)1 | round(testy)n | round(testy)m pic3(k,l,rgb,Q)=0; else pic3(k,l,rgb)=x2(round(testy),round(testx),rgb); end end end endendend%后面的连续桢for Q=1:9for k=1:36 switch k case 1,2,3,4,5,6,7,12,13,18,19,24,25,30,31,32,33,34,35,36 oldxx2(k)=newx(k); oldyy2(k)=newy(k); otherwise oldxx2(k)=(newx(k)-oldx1(k)*Q/9+oldxx1(k); oldyy2(k)=(newy(k)-oldy1(k)*Q/9+oldyy1(k); endendfor i=1:29 newspic=; if mod(i,6)=0 for j=1:4 if j=1 newspic=1 newx(i) newy(i) newx(i)*newy(i); elseif j=2 newspic=newspic;1 newx(i+1) newy(i) newx(i+1)*newy(i); elseif j=3 newspic=newspic;1 newx(i) newy(i+6) newx(i)*newy(i+6); elseif j=4 newspic=newspic;1 newx(i+1) newy(i+7) newx(i+1)*newy(i+7); end end oldxx2_1=oldxx2(i);oldxx2(i+1);oldxx2(i+6);oldxx2(i+7); oldyy2_1=oldyy2(i);oldyy2(i+1);oldyy2(i+6);oldyy2(i+7); cofx=inv(newspic)*oldxx2_1; cofy=inv(newspic)*oldyy2_1; for k=newy(i):newy(i+6) for l=newx(i):newx(i+1) for rgb=1:3 testx=1,l,k,k*l*cofx; testy=1,l,k,k*l*cofy; if round(testx)1 | round(testy)n | round(testy)m pic4(k,l,rgb,Q)=0; else pic4(k,l,rgb,Q)=x2(round(testy),round(testx),rgb); end end end endendendends1=size(pic1);s2=size(pic3);s(1)=min(s1(1),s2(1);s(2)=min(s1(2),s2(2);s(3)=min(s1(3),s2(3);%对两幅图片产生的序列图进行加权求和,将结果放在一个4维数组中,产生11帧图像picture(1:m,1:n,1:p,1)=x1;picture(1:s(1),1:s(2),1:s(3),2)=0.9*pic2(1:s(1),1:s(2),1:s(3),8)+0.1*pic3(1:s(1),1:s(2),1:s(3);for i=3:9picture(1:s(1),1:s(2),1:s(3),i)=(1.1-0.1*i)*pic2(:,:,:,10-i)+(i-1)*0.1*pic4(:,:,:,i-2);endpicture(1:s(1),1:s(2),1:s(3),10)=0.1*pic1(1:s(1),1:s(2),1:s(3)+0.9*pic4(:,:,:,8);picture(1:m,1:n,1:p,11)=x2;picture=uint8(picture);for i=1:11 subplot(2,2,3),imshow(picture(:,:,:,i);pause(0.5);endmov=avifile(
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 成衣品质检验教学设计-2025-2026学年中职专业课-服装制作工艺-服装设计与工艺-轻工纺织大类
- Section B教学设计-2025-2026学年初中英语人教新目标版2012七年级下册-人教版2012
- 任务三 纸板凳的制作教学设计-2025-2026学年初中劳动七年级上册浙教版
- 3.1 列代数式表示数量关系 第2课时 列代数式 说课稿 2024-2025学年人教版七年级数学上册
- 集团有限公司资产管理办法
- 蔬果类营养知识培训课件
- 4.7 数学建模活动:生长规律的描述说课稿-2025-2026学年高中数学人教B版2019必修第二册-人教B版2019
- 第八章 人民解放战争时期的政治概况和文化教学设计-2025-2026学年中职历史中国历史 (全一册)人教版
- 2025年体能专业理论知识考试题库
- 2025年全民(药膳与食疗)技能知识考试题与答案
- 慢性胰腺炎中西医结合诊疗专家共识(2025年)解读课件
- 廊坊市广阳区2025年小升初素养数学检测卷含解析
- 附件6工贸高风险企业高危领域较大以上安全风险管控清单
- 隔声窗施工方案
- (高清版)DB11∕T687-2024公共建筑节能设计标准
- 《医药电子商务实务》考试复习题库(含答案)
- 钢板仓施工流程及安全保证方案
- 农业互联网与农产品营销策略优化
- 知识产权具体实施细则
- 泄密案件整改报告范文
- 船舶危险源辨识及防范措施
评论
0/150
提交评论