- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
计算机视觉课程设计实验报告
1.题 目: 图 像 变 形
2.组 员:曹英( 叶超( 李淑珍(
实验目的:掌握图像几何运算中变形算法
实验原理:对两幅图分别进行卷绕、插值,每幅图得到一序列图片,然后
对这些序列图片进行加权求和,得到一序列帧,再将其显示出来,就得到了由一幅图到另一幅图的变形。
实验步骤:对一幅图分别选 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;
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
end
newx(k)=fix((n/5))*(mod(k-1,6))+1;
newy(k)=fix((m/5))*fix((k-1)/6)+1;
%对原图进行分块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);
end
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}
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),*);
end
end
%对第一张进行卷绕,插值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) n
您可能关注的文档
最近下载
- 新版GB50108地下工程防水技术规范.docx VIP
- 中华人民共和国企业所得税月(季)度预缴纳税申报表(A类)(2021版).doc VIP
- 2024-2025学年初中物理八年级上册鲁科版(五四制)(2024)教学设计合集.docx
- 《感受家乡文化 关心家乡发展》教学设计2024.docx
- 非谓语动词练习题.docx VIP
- 人音版 音乐六年级上册第二课悠扬民歌《妈妈格桑拉》 课件(共22张PPT)(含音频+视频).pptx VIP
- NB-T 47013.5-2015 承压设备无损检测 第5部分:渗透检测(完整).doc VIP
- 一年级小学环保教育校本课程教材.doc VIP
- 基层卫生岗位练兵和技能竞赛试卷C及答案.docx VIP
- 射血分数保留心衰(HFpEF)的临床诊治题库答案-2025年华医网继续教育.docx VIP
文档评论(0)