遥感影像镶嵌及实现(四)

版权声明:本文为博主newston原创文章,允许转载,但转载必须保留原创链接。 https://blog.csdn.net/newston/article/details/89399473

遥感影像镶嵌及实现(一)
遥感影像镶嵌及实现(二)
遥感影像镶嵌及实现(三)

主要内容

1 获取直骨架点及边:使用重叠区域点集,计算多边形2D直骨架(2D Straight Skeleton),获取骨架点;
2 构造有向图,求重叠区域镶嵌线:使用骨架边(skeleton edge),构建有向图,找到从交叉点起始到结束的最短距离。那么由起始点,经过最短距离的骨架点,到结束点构成重叠区域的镶嵌线;
3 构造贡献区域:由有效区域点集同重叠区域镶嵌线点集,分别构成两幅图镶嵌后、各自的贡献区域;
4 demo。

1 获取直骨架点及边

(1)重叠区域点,多边形
重叠区域多边形
(2)2D直骨架
  求2D直骨架时注意:重叠区域点为顺时针排列,在压入Polygon_2 poly时,需要逆时针。图中蓝色(16)和绿色(19)线为骨架边,蓝色与绿色线的交点为骨架点(17)。
重叠区域直骨架点

(354723,4.43218e+006)contour vertex//轮廓点 19个,20个其中有一个回路
(355805,4.43199e+006)contour vertex
(355937,4.43181e+006)contour vertex
(356012,4.43172e+006)contour vertex
(358214,4.43119e+006)contour vertex
(358198,4.43111e+006)contour vertex
(358286,4.43109e+006)contour vertex
(357810,4.42914e+006)contour vertex
(357580,4.42798e+006)contour vertex
(396404,4.41855e+006)contour vertex
(397306,4.42227e+006)contour vertex
(396520,4.42249e+006)contour vertex
(395673,4.42262e+006)contour vertex
(395078,4.42289e+006)contour vertex
(394422,4.42307e+006)contour vertex
(393935,4.42308e+006)contour vertex
(393843,4.42315e+006)contour vertex
(394376,4.42544e+006)contour vertex
(355312,4.43462e+006)contour vertex
(356195,4.43201e+006)skeleton vertex//骨架点 17个
(396348,4.4217e+006)skeleton vertex
(358990,4.42888e+006)skeleton vertex
(356495,4.43309e+006)skeleton vertex
(356213,4.43315e+006)skeleton vertex
(356786,4.4329e+006)skeleton vertex
(359772,4.4322e+006)skeleton vertex
(359823,4.43212e+006)skeleton vertex
(359973,4.43208e+006)skeleton vertex
(395162,4.42092e+006)skeleton vertex
(393269,4.42123e+006)skeleton vertex
(395008,4.42084e+006)skeleton vertex
(394409,4.42105e+006)skeleton vertex
(394140,4.42112e+006)skeleton vertex
(391206,4.42224e+006)skeleton vertex
(361134,4.43019e+006)skeleton vertex
(390659,4.42313e+006)skeleton vertex
(355312,4.43462e+006)->(354723,4.43218e+006) contour//轮廓边 38
(354723,4.43218e+006)->(355312,4.43462e+006) contour
(354723,4.43218e+006)->(355805,4.43199e+006) contour
(355805,4.43199e+006)->(354723,4.43218e+006) contour
(355805,4.43199e+006)->(355937,4.43181e+006) contour
(355937,4.43181e+006)->(355805,4.43199e+006) contour
(355937,4.43181e+006)->(356012,4.43172e+006) contour
(356012,4.43172e+006)->(355937,4.43181e+006) contour
(356012,4.43172e+006)->(358214,4.43119e+006) contour
(358214,4.43119e+006)->(356012,4.43172e+006) contour
(358214,4.43119e+006)->(358198,4.43111e+006) contour
(358198,4.43111e+006)->(358214,4.43119e+006) contour
(358198,4.43111e+006)->(358286,4.43109e+006) contour
(358286,4.43109e+006)->(358198,4.43111e+006) contour
(358286,4.43109e+006)->(357810,4.42914e+006) contour
(357810,4.42914e+006)->(358286,4.43109e+006) contour
(357810,4.42914e+006)->(357580,4.42798e+006) contour
(357580,4.42798e+006)->(357810,4.42914e+006) contour
(357580,4.42798e+006)->(396404,4.41855e+006) contour
(396404,4.41855e+006)->(357580,4.42798e+006) contour
(396404,4.41855e+006)->(397306,4.42227e+006) contour
(397306,4.42227e+006)->(396404,4.41855e+006) contour
(397306,4.42227e+006)->(396520,4.42249e+006) contour
(396520,4.42249e+006)->(397306,4.42227e+006) contour
(396520,4.42249e+006)->(395673,4.42262e+006) contour
(395673,4.42262e+006)->(396520,4.42249e+006) contour
(395673,4.42262e+006)->(395078,4.42289e+006) contour
(395078,4.42289e+006)->(395673,4.42262e+006) contour
(395078,4.42289e+006)->(394422,4.42307e+006) contour
(394422,4.42307e+006)->(395078,4.42289e+006) contour
(394422,4.42307e+006)->(393935,4.42308e+006) contour
(393935,4.42308e+006)->(394422,4.42307e+006) contour
(393935,4.42308e+006)->(393843,4.42315e+006) contour
(393843,4.42315e+006)->(393935,4.42308e+006) contour
(393843,4.42315e+006)->(394376,4.42544e+006) contour
(394376,4.42544e+006)->(393843,4.42315e+006) contour
(394376,4.42544e+006)->(355312,4.43462e+006) contour
(355312,4.43462e+006)->(394376,4.42544e+006) contour
(354723,4.43218e+006)->(356213,4.43315e+006) bisector//平分线70((16+19)*2)
(356213,4.43315e+006)->(354723,4.43218e+006) bisector
(355805,4.43199e+006)->(356495,4.43309e+006) bisector
(356495,4.43309e+006)->(355805,4.43199e+006) bisector
(355937,4.43181e+006)->(356195,4.43201e+006) bisector
(356195,4.43201e+006)->(355937,4.43181e+006) bisector
(356012,4.43172e+006)->(356195,4.43201e+006) bisector
(356195,4.43201e+006)->(356012,4.43172e+006) bisector
(358214,4.43119e+006)->(359772,4.4322e+006) bisector
(359772,4.4322e+006)->(358214,4.43119e+006) bisector
(358198,4.43111e+006)->(359823,4.43212e+006) bisector
(359823,4.43212e+006)->(358198,4.43111e+006) bisector
(358286,4.43109e+006)->(359973,4.43208e+006) bisector
(359973,4.43208e+006)->(358286,4.43109e+006) bisector
(357810,4.42914e+006)->(358990,4.42888e+006) bisector
(358990,4.42888e+006)->(357810,4.42914e+006) bisector
(357580,4.42798e+006)->(358990,4.42888e+006) bisector
(358990,4.42888e+006)->(357580,4.42798e+006) bisector
(396404,4.41855e+006)->(395008,4.42084e+006) bisector
(395008,4.42084e+006)->(396404,4.41855e+006) bisector
(397306,4.42227e+006)->(396348,4.4217e+006) bisector
(396348,4.4217e+006)->(397306,4.42227e+006) bisector
(396520,4.42249e+006)->(396348,4.4217e+006) bisector
(396348,4.4217e+006)->(396520,4.42249e+006) bisector
(395673,4.42262e+006)->(395162,4.42092e+006) bisector
(395162,4.42092e+006)->(395673,4.42262e+006) bisector
(395078,4.42289e+006)->(394409,4.42105e+006) bisector
(394409,4.42105e+006)->(395078,4.42289e+006) bisector
(394422,4.42307e+006)->(394140,4.42112e+006) bisector
(394140,4.42112e+006)->(394422,4.42307e+006) bisector
(393935,4.42308e+006)->(393269,4.42123e+006) bisector
(393269,4.42123e+006)->(393935,4.42308e+006) bisector
(393843,4.42315e+006)->(391206,4.42224e+006) bisector
(391206,4.42224e+006)->(393843,4.42315e+006) bisector
(394376,4.42544e+006)->(390659,4.42313e+006) bisector
(390659,4.42313e+006)->(394376,4.42544e+006) bisector
(355312,4.43462e+006)->(356213,4.43315e+006) bisector
(356213,4.43315e+006)->(355312,4.43462e+006) bisector
(356195,4.43201e+006)->(356786,4.4329e+006) bisector
(356786,4.4329e+006)->(356195,4.43201e+006) bisector
(396348,4.4217e+006)->(395162,4.42092e+006) bisector
(395162,4.42092e+006)->(396348,4.4217e+006) bisector
(358990,4.42888e+006)->(361134,4.43019e+006) bisector
(361134,4.43019e+006)->(358990,4.42888e+006) bisector
(356495,4.43309e+006)->(356213,4.43315e+006) bisector
(356213,4.43315e+006)->(356495,4.43309e+006) bisector
(356495,4.43309e+006)->(356786,4.4329e+006) bisector
(356786,4.4329e+006)->(356495,4.43309e+006) bisector
(356786,4.4329e+006)->(359772,4.4322e+006) bisector
(359772,4.4322e+006)->(356786,4.4329e+006) bisector
(359772,4.4322e+006)->(359823,4.43212e+006) bisector
(359823,4.43212e+006)->(359772,4.4322e+006) bisector
(359823,4.43212e+006)->(359973,4.43208e+006) bisector
(359973,4.43208e+006)->(359823,4.43212e+006) bisector
(359973,4.43208e+006)->(361134,4.43019e+006) bisector
(361134,4.43019e+006)->(359973,4.43208e+006) bisector
(395162,4.42092e+006)->(395008,4.42084e+006) bisector
(395008,4.42084e+006)->(395162,4.42092e+006) bisector
(393269,4.42123e+006)->(394140,4.42112e+006) bisector
(394140,4.42112e+006)->(393269,4.42123e+006) bisector
(393269,4.42123e+006)->(391206,4.42224e+006) bisector
(391206,4.42224e+006)->(393269,4.42123e+006) bisector
(395008,4.42084e+006)->(394409,4.42105e+006) bisector
(394409,4.42105e+006)->(395008,4.42084e+006) bisector
(394409,4.42105e+006)->(394140,4.42112e+006) bisector
(394140,4.42112e+006)->(394409,4.42105e+006) bisector
(391206,4.42224e+006)->(390659,4.42313e+006) bisector
(390659,4.42313e+006)->(391206,4.42224e+006) bisector
(361134,4.43019e+006)->(390659,4.42313e+006) bisector
(390659,4.42313e+006)->(361134,4.43019e+006) bisector

(3)交点,交叉点(重叠区域镶嵌线起始、结束点)
  下图中黄色圆圈为两幅影像有效区域线的8个交点,黑色带有×的为交叉点
结合交点,交叉点(重叠区域镶嵌线起始、结束点)
2 构造有向图,求重叠区域镶嵌线
(1)由骨架点(skeleton vertex)和平分线(bisector)构建图;
  其中建图的起始、结束点为对于有效区域的进出点。
(2)使用dijkstra查找到起始、结束点之间的最短距离路径。
下图中红色小框为最短路径点,即为镶嵌线点:
搜索到的最短路径点,镶嵌线点
3 构造贡献区域
根据有效区域点、交叉点、重叠区域点构造每幅影像的贡献区域:
两幅图的镶嵌线
4 demo
(1)两幅影像无压缩有效区域
两幅影像无压缩有效区域
(2)两幅影像压缩有效区域
两幅影像压缩有效区域
(3)交点
<1> 左侧交点
左侧交叉点
<2>右侧交点
右侧交叉点
(4)镶嵌线与有效区域叠加
镶嵌线与有效区域叠加
(5)镶嵌线与有效区域叠加细节
<1>左侧细节
左侧细节
<2>右侧细节
右侧细节

猜你喜欢

转载自blog.csdn.net/newston/article/details/89399473