基于边界点追踪的等值线图区域填充算法

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

文章编号 :10072130X(2006) 1120066202
2006 年第 28 卷第 11 期 Vol1 28 ,No1 11 ,2006
基于边界点追踪的等值线图区域填充算法 3
A n Algo rit hm fo r t he Regio n Filling of Iso grams Ba sed o n Bo rder Point Tracing
};
(3) 等值线数据结构 :
st ruct Contour Point s { vector < Cpoint > vecContour Point s ;/ / 等值线点列 float f Value ; / / 等值线高程 };
2. 5 等值线填充的算法步骤
等值线填充的过程分为两步 :构造等值区和填充颜色 。 步骤 1 构造等值区 :依据性质 2 和性质 3 ,把等值区 分为由非封闭等值线和边界线组成的非闭合区和由闭合等 值线组成的闭合区 ,所对应的算法也就分为非闭合区算法 和闭合区算法 。 (1) 形成非闭合区算法 :按照定义 1 ,将所有非封闭等 值线的起点 、终点以及区域矩形的四个顶点按逆时针顺序 排序 (也可按顺时针) ,存放在如结构 (1) 的向量中 ,即为边 界点序列 。 首先在边界点序列中取出标记为未使用的一点 pi ( xi , yi) 作为当前点 , 保存它的序号 i 以及坐标值 , 将此点加入 到区域中 ,并且标记为已使用 ; 在边界点序列中 , 找出它的 下一点 pi + 1 ( xi + 1 , yi + 1 ) 。若此点为区域边界线的顶点 , 保 存它的序号 i + 1 , 将此点加入到区域中 , 并且标记为已使 用 ,在边界点序列中继续查找下一个点 ……;若此点为等值 线的起点 ,将此条等值线加入到区域中 ,若此点为等值线的 终点 ,将此条等值线反向加入到区域中 ,然后把等值线的另 一端点 qj ( x j , y j ) 作为当前点 ,保存它的序号 j ,并且标记为 已使用 ,在边界点序列中继续向后查找它的下一点 ……。 如此循环 ,直到回到起始点 pi ( xi , yi ) 为止 , 从而形成一个 闭合的连通区域 ,即非闭合区 。 依次在边界点序列中取出标记为未使用的另一点 pi ( xi , yi) ,重复刚才的方法 ,就能形成一个个新的连通区域 。 直到将所有标记为未使用的边界点都已使用 , 这样就得到 了所有的非闭合区 。由于等值线的层次是不定的 , 其属性 值也不定 。所以 ,在进行边界点追踪算法时 ,为了确保能够 自动建立非闭合区 ,采用递归算法 。 (2) 形成闭合区的算法 :闭合区的形成较非闭合区的形 成简单一些 。首先 ,在每一条闭合的等值线中找出横坐标 最小的点 ,然后将这些闭合的等值线按照横坐标最小的点 坐标从小到大依次进行排序 。这样 ,同心区域中的内部闭 合区域将排在外部闭合区的后面 。当按照从外到内的顺序 填充时 ,内部闭合区必然填充不同于外部闭合区的颜色 。 步骤 2 填充颜色 :所谓双属性方法就是对每个得到 的闭合区域 (包括非闭合区和闭合区) ,它的属性值必然是 一个或两个 。如果是一个 ,就直接取这个值 ;如果是两个 , 就取这两个属性值的平均值 。对于非闭合区来说 ,由于在 区域点列中我们保存了此区域的两个高程 ,若两个高程值 为 0 ,表示此区域由边界顶点组成 ,其非闭合区组成的边界 中不包括等值线 ,此区域只包括闭合区 ;若两个高程值中有 一个不为 0 的高程 ,就将这个高程值设为此非闭合区的值 ; 若两个高程中有两个互不相同的高程 ,取两个高程值的平 均值作为这个非闭合区的值 。对于闭合区来说 ,我们已经 按照横坐标最小排列闭合等值线 ,得到了闭合等值线的拓 扑序列关系 。依次取出相邻的两条闭合等值线 ,根据原理 3 判断后一条等值线是否在前一条等值线的内部 ,若在内
原理 2 等值区属性值原理 :在一幅等值线图中 , 构成
任意连通区域的等值线属性值只能有一个或两个 。
证明 只有一条等值线围成的区域只有一个属性值 。
对于几条等值线围成的区域 ,根据原理 1 ,拓扑相邻的等值 线其属性值一定是相邻或相等的 ,若相邻 ,则等值线属性有 两个 ;若相等 ,则等值线属性为一个 。
(1) 区域边界点的数据结构 :
st ruct EdgePt
{ CPoint pt Edge ; / / 取边界上的点 (边界线顶点或等值线与边
/ / 界线的交点) int nPt Att ribute ; / / 点的属性 :0 :等值线的起点 ,1 :等值线
/ / 的终点 ,2 :边界线的顶点 bool bU se Flag ; / / 该点是否已用过 int nContour Index ; / / 对应的等值线编号 ,若为顶点 ,值为
韩丽娜1 ,4 ,石昊苏2 ,张群会3 HAN Li2na1 ,4 , SHI Hao2su2 , ZHANG Qun2hui3 ( 1. 西北大学信息科学技术学院 ,陕西 西安 710069 ;2. 西北政法学院计算机信息网络中心 ,陕西 西安 710063 ; 3. 西安科技大学计算机科学系 ,陕西 西安 710054 ;4. 咸阳师范学院计算机科学系 ,陕西 咸阳 702100) ( 1. School of Information Science and Technology , Northwest University , Xi’an 710069 ; 2. Computer Information and Net work Center , Northwest University of Political Science and La w, Xi’an 710063 ; 3. Department of Computer Science , Xi’an University of Science and Technology , Xi’an 710054 ;
同理可证 j > i + 1 的情况 。所以 j 既不能小于 i - 1 ,
也不可能大于 i + 1 , 则 j 只可能为 i 、i - 1 和 i + 1 三个值 ,
即拓扑相邻的等值线其属性值一定是相邻或相等的 。但
是 ,属性值相邻时 ,其拓扑位置则不一定相邻 , 这点可从等
值线图中容易看出 。

// - 1 float f Value ; / / 此点对应的等值线的高程 ,若为顶点 ,高程
//为0
};
(2) 等值区数据结构 :
st ruct Contour Region
{ float f Max Height ; / / 一个高程属性值 float f Min Height ; / / 另一个高程属性值 vector < Cpoint > vecContour RegPoint s ; / / 边界点列
一幅等值线图中对于它的闭合等值线而言如果有一条等值线c的任一点被包含在另一条等值线c中无论这两条等值线的属性值关系如何那么c由等值线的性质l知各条等值线必不相交即可得证
CN4321258/ TP ISSN 10072130X
计算机工程与科学
COMPU TER EN GIN EERIN G & SCIENCE
证明 假设属性值为 ai (1 < i < n) 的等值线 , 其内侧
(如为外侧 ,证明方法相同) 的等值线属性为 aj (1 < j < n) , 但 j 不等于 i 、i - 1 和 i + 1 , 那么 j 只有两种情况 : j < i - 1
或 j > i +1。
对于 j < i - 1 的情况 ,根据等值线生成的过程 , 则在 ai 与 a j 之间一定可以插值出一条属性值为 a i - 1 的等值线 , 这 与已知 ai 与 a j 拓扑相邻矛盾 ,因此 j 不可能小于 i - 1 。
Abstract :This paper p ut s fo rt h an algorit hm for t he regio n filling of isograms based on border point t racing aco rding to
t he co ncrete characteristics of isograms and uses a do uble2att ribute way to fill every region into colours. So me t heo retical ev2
所产生的问题 ,再结合等值线的一些特点 ,本文提出了基于 边界点追踪的区域填充算法 ,而对每个填充区域则采用双 属性的方法进行填色 。等值线填充的实质就是等值线间建 立拓扑关系[1 ] 。
2 等值线填充
2. 1 定义
定义 1 边界点序列 :把一幅等值线图中的所有非封 闭等值线与边界线的交点以及边界线的顶点沿一个方向 (顺时针或逆时针) 依次排列 ,这样得到的一个序列称为边 界点序列 。
4. Department of Computer Science , Xianyang Normal College , Xianyang 712100 ,China)
摘 要 :本文根据等值线的具体特征提出了一种基于边界点追踪的区域填充算法 ,而对每一个填充区域则采用双属性 的方法来填色 ,并给出了相应的理论依据 。这个算法在项目“地质资料解释系统”中得到了实际的应用 ,效果理想 。
idences are given. This algorit hm is used in p ractice and t he effect is ideal. 关键词 :等值线 ;双属性方法 ;边界点 ;等值区 ;闭合区 ;非闭合区
Key words :isogram ;double2att ribute met hod ; border point ; equivalence regio n ; clo sed region ;open regio n
中图分类号 : TP301. 6
文献标识码 :A
1 引言
等值线图在许多工业领域中 ,尤其是在进行地质研究 或地质分析的相关部门 ,具有十分重要的意义 ,它为油田的 进一步生产开发提供了可靠的保证 。通过一定的等值线绘 制算法 ,绘制出等值线 ,使研究人员能够直观 、迅速地观察 到计算模拟的结果 ,从而有利于工作人员对数据作进一步 的分析 。但是 ,仅仅这样还不够直观 ,若能对得到的不同区 域填充不同的颜色 ,将使等值线图的数值变化看起来更加 一目了然 。等值线填充 ,即在等值线图中所有等值线形成 的属性值不同区域中用不同的颜色加以充填 ,形成彩色等 值线图 。有关等值线的区域填充算法有两种 :基于栅格的 填充算法和基于矢量的填充算法 。基于栅格的等值线填充 算法尽管简单 ,但缺点很多 ;基于矢量的填充算法也存在一 些问题 ,如相同的区域赋予了不同的颜色 。针对以上方法
原理 3 等值线包含原理 : 一幅等值线图中 ,对于它的 闭合等值线而言 ,如果有一条等值线 C1 的任一点被包含在 另一条等值线 C2 中 (无论这两条等值线的属性值关系如 何) ,那么 C1 的全部点都在 C2 内 。
由等值线的性质 1 知 ,各条等值线必不相交即可得证 。
2. 4 等值线填充时的结构
66
性质 3 出于定义域是有界的 ,等值线可能是闭合的 , 也可能是不闭合的[4] 。
2. 3 等值线填充的原理
原理 1 相邻等值线属性值原理 :在一幅等值线图中 , 拓扑相邻的等值线其属性值一定是相邻或相等的 ;反之则 不成立 。
设一幅等值线图中显示了 n 个属性值的等值线 , 属性 值分别为 a1 , a2 , a3 , …, an , 而且 a1 < a2 < …< an , 根据原 理 1 可知 ,图中任意一条属性值为 aj 的等值线 , 其内侧或 外侧的等值线的属性值为 aj + 1 或 aj - 1 或 aj 。现用反证法证 明。相交[2~5 ] 。 性质 2 对于给定的某个属性值 value ,相应的等值线 数量可能不止一条[4] 。
3 收稿日期 :2005207207 ;修订日期 :2005211207 作者简介 :韩丽娜 (1976 ) ,女 ,陕西富平人 ,硕士生 ,讲师 ,研究方向为图形图像处理和科学计算可视化 ;石昊苏 ,讲师 ;张群会 ,教 授 ,研究方向为图形图像处理和科学计算可视化 。 通讯地址 :710063 陕西省西安市长安南路西北政法学院网络中心 ; Tel :13087523838 ; E2mail : hanlina8888 @hot mail . co m Address :Co mp uter Information and Net work Center ,Nort hwest Universit y of Political Science and Law ,Xi’an ,Shaanxi 710063 ,P. R. China
相关文档
最新文档