# ImageStitch **Repository Path**: DreamhighMacy/ImageStitch ## Basic Information - **Project Name**: ImageStitch - **Description**: 图像拼接相关资料 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 3 - **Forks**: 0 - **Created**: 2018-05-03 - **Last Updated**: 2025-05-19 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README 开发环境:opencv2.4.13 + VS2013 解决方案中包含两个工程 1. ImageStitch_01:只适用平移的图片拼接,利用柱面投影+模板匹配+渐入渐出融合的方法 2. ImageStitch_02:利用单应变换模型进行两幅图片的拼接 3. ImageStitch_Opencv2413:直接利用opencv中封装的图片拼接方法实现图片拼接 --- 图像拼接按照主流算法分类 1. 全局对齐方法(Global alignment) 以一个性矩阵对齐图像,以AutoStitch为代表,适合没有视差或者极小视差的场景 2. 空域变化绘制方法(Spatially-varying warping) 主流,以局部单应性或网格优化变形为主,以APAP为代表,适合场景视差较小的情况 3. 缝合线主导方法(Seam-driven) 主流,缝合线(seam-cutting)是处理视差的方法,这类方法以缝合线为主导,不用严格的对齐整个重叠区域,而是对其缝合线附近的区域,以Parallax-tolerant为代表,可以拼接大视察场景 对视差有效的部件:Spatiallly-varying warping,Seam-cutting,Multi-band blending --- 图像拼接技术步骤归纳 http://blog.csdn.net/xiaoch1222/article/details/53510895 图像拼接系列教程 图像拼接(一):柱面投影+模板匹配+渐入渐出融合 http://blog.csdn.net/czl389/article/details/54599253 OpenCv实现两幅图像的拼接 http://blog.csdn.net/adong76/article/details/39497589 --- 工程一: 使用方法:柱面投影+模板匹配+渐入渐出融合 待拼接的两幅图片之间的变换模型是平移模型,即两幅图像同名点位置之间只相差两个未知量:Δx 和Δy,自由度为2,模型收得最紧。所以只有所有图像都是用同一水平线或者同一已知倾斜角的摄像机拍摄时,这种方法才适用。 柱面投影公式: x′和y′为柱面投影后的图像坐标,x和y为图像原来的坐标,width和height为图像宽高,f为相机焦距,我的理解是:因为width和height都是在图像坐标系下,所以这个f是相对于图像的,我是根据图像大小以及视场角最做的估计。 --- 工程二: 方法: 单应变换模型 特征:SIFT 【cv】使用opencv的FeatureDetector,DescriptorExtractor,DescriptorMatcher http://blog.csdn.net/dsbatigol/article/details/19353695 Opencv中的DMatch http://blog.csdn.net/quincuntial/article/details/50114773 warpPerspective函数介绍:对图像进行透视变换,对图像进行变形 函数的调用形式: >C++: void warpPerspective(InputArray src, OutputArray dst, InputArray M, Size dsize, int flags=INTER_LINEAR, int borderMode=BORDER_CONSTANT, const Scalar& borderValue=Scalar()) 参数详解: InputArray src:输入的图像 OutputArray dst:输出的图像 InputArray M:透视变换的矩阵 Size dsize:输出图像的大小 int flags=INTER_LINEAR:输出图像的插值方法, combination of interpolation methods (INTER_LINEAR or INTER_NEAREST) and the optional flagWARP_INVERSE_MAP, that sets M as the inverse transformation ( \texttt{dst}\rightarrow\texttt{src} ) int borderMode=BORDER_CONSTANT:图像边界的处理方式 const Scalar& borderValue=Scalar():边界的颜色设置,一般默认是0 函数原理讲解:http://blog.csdn.net/qq_18343569/article/details/47953843 --- 工程三: 直接利用opencv中封装的图片拼接的方法进行图片拼接,此方法对较小视差的图片集具有较好的拼接效果,对视差较大的图片集则拼接效果不好,并可能没有办法拼接出全景图片。