您好,欢迎访问三七文档
课程大作业实验报告全景图像拼接研究课程名称:数字图像处理指导教师邓继忠报告提交日期2011年12月8日项目答辩日期2011年12月9日摘要图像拼接技术就是将数张有重叠部分的图像(可能是不同时间、不同视角或者不同传感器获得的)拼成一幅大型的无缝高分辨率图像的技术。本实验对截图,实拍图像进行图像的拼接,通过较精确的算法,将图片进行匹配融合拼接,最终得到无缝拼接的大角度图像。目录1全景图像拼接背景及要求...................................................11.1项目前景.............................................................11.2作业要求.............................................................12全景图像拼接原理说明.....................................................12.1什么是全景图像拼接....................................................12.2匹配拼接基本原理......................................................13程序设计.................................................................33.1程序流程图及说明......................................................33.2程序主要模块介绍......................................................43.3算法实现的关键问题及解决方法..........................................64实验结果与分析...........................................................74.1实验结果..............................................................74.2项目创新处...........................................................104.3存在问题及改进设想...................................................105心得体会................................................................106参考文献................................................................1111全景图像拼接背景及要求1.1项目前景给定某个场景的一组互相有重叠的局部图像,如何生成包含着这组局部图像的新的较大的视图,称为图像的拼接(stitch)问题,有时也称为图像镶嵌(mosaic)。图像拼接技术的研究是在现实应用的需求下逐渐发展起来的,现已成为计算机视觉和计算机图形学的研究焦点。图像拼接技术广泛应用于数字视频、MPEG-4编码、运动分析、虚拟现实技术、遥感图像处理、医学图像分析等领域。1.2作业要求1)自行搜集与阅读相关的图像全景拼接的资料;2)尝试对全景图像拼接进行编程,可以考虑采用上述三种函数。3)在校园采集图像,进行全景拼接实验,并改进程序,尽可能做到无缝拼接。2全景图像拼接原理说明2.1什么是全景图像拼接全景图像拼接是利用照相机平移或旋转得到的部分重叠图像样本生成一个较大的甚至左右对接的全方位图像的场景绘制方法。2.2基本原理(匹配拼接)2.2.1图像获取首先网上下载图片截取分块,也可实拍取景图像。如果实景取材的话,因为360度全2景图像的素材,是通过利用普通照相机采集的照片,经过数字化得到的边界部分重叠的图像。因为全景图像表示的是人在某一视点观察空间,视点不动而观察方向改变。所以在拍照时将照相机固定在支架上,尽量避免转动时镜头的偏斜和俯仰,并以镜头为轴转动一周连续拍照。拍照时使相邻图像具有一定程度的内容重叠,以便于拼接而得到全景图像。2.2.2图像重叠区域的确定由于基于面积的方法计算量太大,只利用一列像素又经常造成误匹配,所以算法的思路是在图像二上一定模块上相隔一定距离提取像素点,得到一个比较样本模板,然后扫描第一幅图像。首先为了减少运算量,设一个适当的遍历“buchang”,扫描找到一个最少差值的坐标之后就确定了样本模块在图像一中的大概位置,然后再在该坐标周围的一个网格的范围内进行扫描,最小差值的坐标即为最佳匹配。匹配分为粗略匹配部分跟精确匹配部分。粗略匹配:把SourceImage1跟SourceImage2分别分离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,min_y+buchang/2).跟粗略匹配一样地提取网格,这次每次移动一个像素点,然后就得到一个最佳的匹配坐标min_x,min_y,跟一个经过精确匹配的最小差值min_value,(min_x,,min_y)就是redImage2二分之一高度处提取的模板在redImage1中对应的位置。2.2.3图像连接3找到重叠范围,如果仅仅是简单的叠加,会造成图像明显的边界,而且会发生错位,所以我们采用多种情况讨论的方法,实现图像的精确定位,总体有4种情况,具体看程序中的解析。我们没有采用图像融合是因为,我认为在理想的图片中没有必要采用图像融合,而在实拍图像中,越远离中心焦点的像素点畸变越严重,我认为叠加的效果会更加不好。所以就没有融合而采用拼接。由于拍摄的是平面图,拼接出来的图片有比较明显的菱形感,我设想可以运用参考文献[6]中的方法在图像的预处理中先将平面图投射到一个柱面上去,由于过于复杂,在本次作业中没有使用,在日后希望可以得到改进。图1拼接处理示意图3程序设计3.1程序流程图及说明源图像一源图像二匹配拼接把拼接好的图像复制给源图像一图像三4图2程序流程图3.2程序主要模块介绍3.2.1界面设计图3程序主界面匹配拼接把拼接好的图像复制给源图像一360度全景图图像四、五……..循环拼接53.2.2部分程序通过灰度值的处理,将图像进行粗略与精确匹配。//以下部分为粗略匹配for(x=(width1/2);x(width1-20);x=x+buchang){for(y=0;y(height1-20);y=y+buchang){m=0;value=0;for(i=0;i20;i=i+2){for(j=0;j20;j=j+2){IPI_GetPixelValue(redImage1,x+i,y+j,&gray_value);gird1[m]=gray_value;m++;}}for(m=0;m100;m++)value+=fabs(gird1[m]-gird2[m]);if(valuemin_value);{min_value=value;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);}}}6//以下为精确匹配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;i20;i=i+2){for(j=0;j20;j=j+2){IPI_GetPixelValue(redImage1,x+i,y+j,&gray_value);gird1[m]=gray_value;m++;}}for(m=0;m100;m++)value=value+fabs(gird1[m]-gird2[m]);//求灰度值的差值if(valuemin_value){min_value=value;min_x=x;min_y=y;}}}//以下两段是找到最优拼接点后两幅图像拼接,分两种情况if(min_y(height2/2)){for(i=0;iwidth1;i++){for(j=0;jheight1;j++){IPI_GetPixelValue(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);7IPI_GetPixelValue(blueImage1,i,j,&gray_value);IPI_SetPixelValue(blueImage,i,j,gray_value);}}for(i=width1;iwidth;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;iwidth;i++){for(j=0;j(min_y+height2/2);j++){IPI_GetPixelValue(redImage2,i-min_x,j-(min_y-height2/2),&gray_value);IPI_SetPixelValue(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(heightheight1){for(i=0;imin_x;i++){for(j=height1;jheight;j++){IPI_SetPixelValue(redImage,i,j,0);IPI_SetPixelValue(blueImage,i,j,0);IPI_SetPixelValue(greenImage,i,j,0);}}}elseif(height==height1){for(i=width1;iwidth;i++){for(j=(height2/2+min_y);jheight;j++){IPI_SetPixelValue(redImage,i,j,0);IPI_SetPixelValue(blueIma
本文标题:全景图像拼接研究
链接地址:https://www.777doc.com/doc-5103984 .html