




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、课程大作业实验报告全景图像拼接研究课程名称:数字图像处理指导教师邓继忠报告提交日期2011年12月8日项目答辩日期2011年12月9日摘要图像拼接技术就是将数张有重叠部分的图像(可能是不同时间、不同视角或者不同传感器获得的)拼成一幅大型的无缝高分辨率图像的技术。本实验对截图,实拍图像进行图像的拼接,通过较精确的算法,将图片进行匹配融合拼接,最终得到无缝拼接的大角度图像。目录1全景图像拼接背景及要求11.1项目前景11.2作业要求12全景图像拼接原理说明12.1什么是全景图像拼接12.2匹配拼接基本原理13程序设计33.1程序流程图及说明33.2程序主要模块介绍43.3算法实现的关键问题及解决方
2、法64实验结果与分析74.1实验结果74.2项目创新处104.3存在问题及改进设想105心得体会106参考文献111全景图像拼接背景及要求1.1项目前景给定某个场景的一组互相有重叠的局部图像,如何生成包含着这组局部图像的新的较大的视图,称为图像的拼接(stitch)问题,有时也称为图像镶嵌(mosaic)。图像拼接技术的 研究是在现实应用的需求下逐渐发展起来的,现已成为计算机视觉和计算机图形学的研究焦点。图像拼接技术广泛应用于数字视频、MPEG-4 编码、运动分析、虚拟现实技术、遥感图像处理、医学图像分析等领域。1.2作业要求1)自行搜集与阅读相关的图像全景拼接的资料;2 )尝试对全景图像拼接
3、进行编程,可以考虑采用上述三种函数。3 )在校园采集图像,进行全景拼接实验,并改进程序,尽可能做到无缝拼接。2全景图像拼接原理说明2.1什么是全景图像拼接全景图像拼接是利用照相机平移或旋转得到的部分重叠图像样本生成一个较大的甚至左右对接的全方位图像的场景绘制方法。2.2基本原理(匹配拼接)2.2.1图像获取首先网上下载图片截取分块,也可实拍取景图像。如果实景取材的话,因为360度全景图像的素材, 是通过利用普通照相机采集的照片, 经过数字化得到的边界部分重叠的图像。因为全景图像表示的是人在某一视点观察空间, 视点不动而观察方向改变。所以在拍照时将照相机固定在支架上, 尽量避免转动时镜头的偏斜和
4、俯仰, 并以镜头为轴转动一周连续拍照。拍照时使相邻图像具有一定程度的内容重叠, 以便于拼接而得到全景图像。2.2.2图像重叠区域的确定由于基于面积的方法计算量太大, 只利用一列像素又经常造成误匹配, 所以算法的思路是在图像二上一定模块上相隔一定距离提取像素点,得到一个比较样本模板,然后扫描第一幅图像。首先为了减少运算量,设一个适当的遍历“buchang”,扫描找到一个最少差值的坐标之后就确定了样本模块在图像一中的大概位置,然后再在该坐标周围的一个网格的范围内进行扫描,最小差值的坐标即为最佳匹配。匹配分为粗略匹配部分跟精确匹配部分。粗略匹配:把SourceImage1跟SourceImage2分
5、别分离R、G、B之后从redImge2的一半高度处提取一个26*26大小的网格,每隔两个格提取一个像素点,得到一个样本模板。由于图像的重叠部分只占图像的30%-50%,所以从redImage1的二分之一宽度初开始扫描,每隔“buchang”的距离提取一个跟样本模板一样大小的网格,用样本模板跟在redImage1提取的网格进行比较,扫描一遍后可以得到一个粗略的样本模板在SourceImage1中的重叠位置min_x,min_y,跟一个粗略的最小差值min_value。精确匹配:这次的扫描范围是(min_x-buchang/2,min_x+buchang/2)*(min_y-buchang/2,m
6、in_y+buchang/2).跟粗略匹配一样地提取网格,这次每次移动一个像素点,然后就得到一个最佳的匹配坐标min_x,min_y,跟一个经过精确匹配的最小差值min_value,(min_x,min_y)就是redImage2二分之一高度处提取的模板在redImage1中对应的位置。2.2.3图像连接找到重叠范围, 如果仅仅是简单的叠加, 会造成图像明显的边界,而且会发生错位,所以我们采用多种情况讨论的方法,实现图像的精确定位,总体有4种情况,具体看程序中的解析。我们没有采用图像融合是因为,我认为在理想的图片中没有必要采用图像融合,而在实拍图像中,越远离中心焦点的像素点畸变越严重,我认为叠
7、加的效果会更加不好。所以就没有融合而采用拼接。由于拍摄的是平面图,拼接出来的图片有比较明显的菱形感,我设想可以运用参考文献6中的方法在图像的预处理中先将平面图投射到一个柱面上去,由于过于复杂,在本次作业中没有使用,在日后希望可以得到改进。图1 拼接处理示意图3程序设计3.1程序流程图及说明源图像二源图像一匹配拼接把拼接好的图像复制给源图像一图像三匹配拼接把拼接好的图像复制给源图像一图像四、五.循环拼接360度全景图图2 程序流程图3.2程序主要模块介绍3.2.1 界面设计图3 程序主界面3.2.2 部分程序通过灰度值的处理,将图像进行粗略与精确匹配。/以下部分为粗略匹配 for(x=(widt
8、h1/2);x<(width1-20);x=x+buchang) for(y=0;y<(height1-20);y=y+buchang) m=0; value=0; for(i=0;i<20;i=i+2) for(j=0;j<20;j=j+2) IPI_GetPixelValue(redImage1,x+i,y+j,&gray_value); gird1m=gray_value; m+; for(m=0;m<100;m+) value += fabs(gird1m-gird2m) ; if(value<min_value) ; min_value=v
9、alue; min_x=x; min_y=y; SetCtrlVal(panel,PANEL_NUMERIC_2,min_x); SetCtrlVal(panel,PANEL_NUMERIC_3,min_y); SetCtrlVal(panel,PANEL_NUMERIC_4,value); /以下为精确匹配 for(x=(min_x-3);x<=(min_x+3);x+) for(y=(min_y-3);y<=(min_y+3);y+) m=0; value=0; for(i=0;i<20;i=i+2) for(j=0;j<20;j=j+2) IPI_GetPixel
10、Value(redImage1,x+i,y+j,&gray_value); gird1m=gray_value; m+; for(m=0;m<100;m+) value=value+fabs(gird1m-gird2m) ; /求灰度值的差值 if(value<min_value) min_value=value; min_x=x; min_y=y; /以下两段是找到最优拼接点后两幅图像拼接,分两种情况 if(min_y>(height2/2) for(i=0;i<width1;i+) for(j=0;j<height1;j+)IPI_GetPixelVa
11、lue (redImage1,i,j,&gray_value); IPI_SetPixelValue (redImage,i,j,gray_value); IPI_GetPixelValue (greenImage1,i,j,&gray_value); IPI_SetPixelValue (greenImage,i,j,gray_value); IPI_GetPixelValue (blueImage1,i,j,&gray_value); IPI_SetPixelValue (blueImage,i,j,gray_value); for(i=width1;i<wi
12、dth;i+) for(j=0;j<(min_y-height2/2);j+) IPI_SetPixelValue (redImage,i,j,0); IPI_SetPixelValue (blueImage,i,j,0); IPI_SetPixelValue (greenImage,i,j,0); for(i=min_x;i<width;i+) for(j=0;j<(min_y+height2/2);j+) IPI_GetPixelValue (redImage2,i-min_x,j-(min_y-height2/2),&gray_value); IPI_SetPi
13、xelValue (redImage,i,j,gray_value); IPI_GetPixelValue (greenImage2,i-min_x,j-(min_y-height2/2),&gray_value); IPI_SetPixelValue (greenImage,i,j,gray_value); IPI_GetPixelValue (blueImage2,i-min_x,j-(min_y-height2/2),&gray_value); IPI_SetPixelValue (blueImage,i,j,gray_value); if(height>heigh
14、t1)for(i=0;i<min_x;i+) for(j=height1;j<height;j+) IPI_SetPixelValue (redImage,i,j,0); IPI_SetPixelValue (blueImage,i,j,0); IPI_SetPixelValue (greenImage,i,j,0); else if(height=height1) for(i=width1;i<width;i+) for(j=(height2/2+min_y);j<height;j+) IPI_SetPixelValue (redImage,i,j,0); IPI_S
15、etPixelValue (blueImage,i,j,0); IPI_SetPixelValue (greenImage,i,j,0); else if(min_y<=height2/2) for(i=0;i<min_x;i+) for(j=0;j<(height2/2-min_y);j+) IPI_SetPixelValue (redImage,i,j,0); IPI_SetPixelValue (blueImage,i,j,0); IPI_SetPixelValue (greenImage,i,j,0); for(i=min_x;i<width;i+) for(j
16、=0;j<height2;j+) IPI_GetPixelValue (redImage2,i-min_x,j,&gray_value); IPI_SetPixelValue (redImage,i,j,gray_value); IPI_GetPixelValue (blueImage2,i-min_x,j,&gray_value); IPI_SetPixelValue (blueImage,i,j,gray_value); IPI_GetPixelValue (greenImage2,i-min_x,j,&gray_value); IPI_SetPixelVal
17、ue (greenImage,i,j,gray_value); for(i=0;i<width1-1;i+) for(j=(height2/2-min_y);j<(height2/2-min_y+height1);j+) IPI_GetPixelValue (redImage1,i,j-(height2/2-min_y),&gray_value); IPI_SetPixelValue (redImage,i,j,gray_value); IPI_GetPixelValue (blueImage1,i,j-(height2/2-min_y),&gray_value);
18、 IPI_SetPixelValue (blueImage,i,j,gray_value); IPI_GetPixelValue (greenImage1,i,j-(height2/2-min_y),&gray_value); IPI_SetPixelValue (greenImage,i,j,gray_value); if(height=height2) for(i=0;i<min_x;i+) for(;j<height;j+) IPI_SetPixelValue (redImage,i,j,0); IPI_SetPixelValue (blueImage,i,j,0);
19、 IPI_SetPixelValue (greenImage,i,j,0); else for(i=width1;i<width;i+) for(j=height2;j<height;j+) IPI_SetPixelValue (redImage,i,j,0); IPI_SetPixelValue (blueImage,i,j,0); IPI_SetPixelValue (greenImage,i,j,0); 通过程序将两幅图像无缝拼接成一幅图像,再点击打开子图像打开另一幅图再实行拼接,依此循环拼接成一幅360度的全景图像。3.3算法实现的关键问题及解决方法因为全景图像表示的是人在
20、某一视点观察空间,视点不动而观察的方向改变。所以在拍照时将照相机固定在支架上,尽量避免转动时镜头的偏斜和付俯仰,并以镜头为轴转动一周连续拍照。拍照时使相邻图像具有一定程度的内容重叠,以便于拼接而得到全景图像。图像重叠范围的确定主要是基于两图像重叠部分对应像素的相似性,即在R GB或Y GB空间上具有基本相同的值。过去的一种作法是基于面积的算法,即取前一幅图像中的一块作为模块,在第二幅图像中搜索具有相同(或相似)值的对应块,从而确定两幅图像的重叠范围。但这种算法计算量太大,而且受光照条件的影响,所以往往不实用。我们在从事全景图像拼接研究的项目中,提出了一种新的图像拼接算法,并在实验中予以证实,发
21、现它不仅计算量大大减少而且行之有效,而且还可用于立体图像对的配准。4实验结果与分析4.1实验结果图4 程序主界面1截图循环拼接图5 拼接前的图像图6 拼接后的图像2实拍循环拼接图7 华农宿舍(拼接前)图8 华农宿舍(拼接后)图9 华山西湖(拼接前)图10 华山西湖(拼接后)图像基本实现拼接,图像与图像之间的拼接处有细微的褶皱,拼接的平滑效果仍有待改进。4.2项目创新之处实现了图像的错位拼接,使图像的拼接误差大大减小。4.3存在问题及改进设想在对全景图像拼接的研究中,我们利用算法来制作大角度图像拼接,将组成全景的若干张图像拼接起来。在处理效果上,图像拼接基本能够完成,并且能实现错位拼接,但是拼接
22、的平滑效果还不是那么好,有待进一步的提升。在接下来的时间里,我们将对图像拼接的平滑效果进行进一步的研究,以求达到更好的效果。4.4作品扩展生成360度柱面全景图像生成360度柱面全景图像:360度圆柱面全景图像虽然只能反映视点前后左右的空间信息,而不能反映上下的情况。但与球面和立方体表面全景图像相比,圆柱面全景图像构造简单:将照相机以相同的焦距,绕其镜头中点旋转一周并间隔一定角度进行拍摄然后把一些边缘相互重叠的相片投影到圆柱面上,最后经无缝拼接得到全景图像。观看时对圆柱面全景图像进行反投影,就可以得到观察平面的图像。360度柱面全景图像的制作分为三步:一是进行局部图像的柱面投影,二是基于两重叠投影图像的像素相关性进行匹配以确定重叠范围,三是无缝拼接。4.41柱面投影算法及实现柱面投影就是将图像投影到柱面上,它是一种透视投影而非平行投影
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年度河南豫矿资源开发集团有限公司所属企业招聘13人考前自测高频考点模拟试题及答案详解(名师系列)
- 2025河南商丘市夏邑县治安巡防队员招聘50人模拟试卷含答案详解
- 2025年合肥市第一人民医院招聘若干人考前自测高频考点模拟试题附答案详解(黄金题型)
- 2025江西吉安市吉水县吉瑞招商运营有限公司面向社会招聘1人模拟试卷及答案详解1套
- 2025湖北恩施州来凤县宏晟工业发展有限公司招聘3人考前自测高频考点模拟试题及参考答案详解一套
- 2025重庆市万州区龙驹镇人民政府招聘公益性岗位1人考试参考题库及答案解析
- 2025春季中国核工业二四建设有限公司校园招聘正式启动模拟试卷及完整答案详解一套
- 2025辽宁能源控股集团所属辽能股份招聘考前自测高频考点模拟试题及答案详解(名校卷)
- 2025中国科学院广州生物医药与健康研究院药物化学研究组博士后科研助理招聘备考考试题库附答案解析
- 2025年寿县寿州人力资源管理有限公司招聘环卫项目管理人员6人考试模拟试题及答案解析
- 掩耳盗铃儿童故事绘本PPT
- CIED植入围手术期抗凝治疗
- 《发现雕塑之美》第4课时《加法与减法的艺术》
- 澳门立法会间接选举制度及其实践
- 1-5年级英语单词
- GA 1551.3-2019石油石化系统治安反恐防范要求第3部分:成品油和天然气销售企业
- 2023年吉林省金融控股集团股份有限公司招聘笔试题库及答案解析
- 类风湿关节炎的中医治疗演示文稿
- 食品安全BRCGS包装材料全球标准第六版管理手册及程序文件
- 热工保护联锁投退管理规定
- (中职)旅游概论第四章 旅游业课件
评论
0/150
提交评论