




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、精选优质文档-倾情为你奉上计算机视觉课程设计实验报告1题 目: 图 像 变 形2组 员:曹英(E) 叶超(E) 李淑珍(E)3实验目的:掌握图像几何运算中变形算法4实验原理:对两幅图分别进行卷绕、插值,每幅图得到一序列图片,然后对这些序列图片进行加权求和,得到一序列帧,再将其显示出来,就得到了由一幅图到另一幅图的变形。5实验步骤:对一幅图分别选4行4列的16个控制点,在每条边上进行五等分,每条边形成六个点,加上原来的16个就是36个控制点,这样就把它分成了不规则的25小块,对每小块进行卷绕、插值,本实验我们用的是最近邻插值,目标控制点就是将图片分成标准并且相同大小的25小块的36个点。这样会得
2、到一幅不规则图片,让它作为新的原图进行如前所述一样的处理,控制点都是这样自动产生的:一开始所选每个控制点到相应标准控制点等距离(本实验我们是分成9等分)产生一序列的36个控制点。这样每产生一幅图都对它进行相类似的处理,控制点的产生方法就是上面所说的那样。得到的一序列图片越来越接近原图,最后一幅与原图一样。这样我们就可以得到这样的一序列图片:原图,手工选控制点进行处理后得到的不规则图,循环产生控制点得到的越来越接近原图的9幅图(最后一幅与原图一样)。为了描述的方便,这里我把它编号为1_1到1_11。对目标图进行与原图一样的处理。编号也类似,即2_1到2_11。最后进行加权求和,第一帧是原图,第二
3、帧是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),im
4、show(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);
5、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(
6、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(
7、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) %进行最近邻
8、插值 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)<1 | round(testx)>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
9、 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(
10、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)
11、;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)<1 | round(testx)>n | round(testy)>m pic2(k,l,rgb,Q)=0; else pic2(k,l,rgb,
12、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(
13、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)
14、for rgb=1:3 testx=1,l,k,k*l*cofx; testy=1,l,k,k*l*cofy; if round(testx)<1 | round(testy)<1 | round(testx)>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
15、,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) n
16、ewy(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)*
17、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)<1 | round(testx)>n | round(testy)>m pic4(k,l,rgb,Q)=0; else pic4(k,l,rgb,Q)=x2(round(testy),round(testx),rgb); en
18、d 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=avifil
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 数据库的安全性与管理策略试题及答案
- 托儿所火灾应急预案范文(3篇)
- 软件设计师考试核心试题及答案解析
- 计算机软件考试常见错误分析
- 行政管理社会服务试题及答案总结
- 便捷复习的试题及答案高效利用
- 企业财务健康状况与战略制定的关系试题及答案
- 高考数学难题攻略与答案
- 法学概论的重要概念归纳与试题及答案
- 2025年网络安全架构与运营考察试题及答案
- 康复医疗复习题及参考答案
- 高血压科普基础知识培训-2025世界高血压日
- 2025春季学期国开电大专科《理工英语1》一平台在线形考(综合测试)试题及答案
- 混凝土预制构件项目可行性研究报告
- 无人机拍摄培训课件
- 电力调度自动化系统预案
- 透析患者高钾血症饮食护理
- 搜索三力测试题及答案
- 高分子化学材料结构与性能试题及答案
- 特种设备操作人员培训管理制度
- 2025年湖北省孝感市中考物理模拟试卷(3月份)(含解析)
评论
0/150
提交评论