摘要: 问题描述:已知两幅图像Image1和Image2,计算出两幅图像的重叠区域,并在Image1和Image2标识出重叠区域。算法思想:若两幅图像存在重叠区域,则进行图像匹配后,会得到一张完整的全景图,因而可以转换成图像匹配问题。图像匹配问题,可以融合两幅图像,得到全景图,但无法标识出在原图像的重叠区域。将两幅图像都理解为多边形,则其重叠区域的计算,相当于求多边形的交集。通过多边形求交,获取重叠区域的点集,然后利用单应矩阵还原在原始图像的点集信息,从而标识出重叠区域。算法步骤:1.图像匹配计算,获取单应矩阵。2.根据单应矩阵,计算图像2的顶点转换后的点集。3.由图像1的顶点集合和图像2的转换点集, 阅读全文
posted @ 2013-08-02 12:50 一点心青 阅读(19906) 评论(14) 推荐(3) 编辑
摘要: 问题描述:已知两个多边形Poly1和Poly2,分别由点集C1={P1,P2,...,Pm}和C2={Q1,Q2,...,Qn}表示,求这两个多边形的交集。算法思想:两个多边形相交后,其顶点要么是两个多边形边的交点,要么是在多边形内部的点。算法步骤:1.计算两个多边形每条边之间的交点。2.计算包含在多边形内部的点。3.将交点和多边形内部的点,按逆时针(或顺时针)排序,得出最终的点集。代码基本实现如下: 1 typedef struct Point 2 { 3 int x; 4 int y; 5 }Point; 6 bool PolygonClip(const vector &p... 阅读全文
posted @ 2013-08-02 11:05 一点心青 阅读(28570) 评论(1) 推荐(2) 编辑