对位图提取轮廓后再将其转换为矢量图(类似PLT文件格式),如何使矢量图形生成的断点最少???

lanzhu5025 2006-03-07 07:42:38
本人在做一个软件,现遇到以下问题:

假设已对一位图按某种算法将其轮廓提出,轮廓数据放在一个2维数组Buf[][]中,数组的大小和原来的位图一直即列数为位图的宽度(单位:像素),行数为位图的高度.数组中以 1 表示轮廓上的点,即当Buf[H][L] == 1时表示点Point(H,L)为构成轮廓的一个点.
由于在数组中构成轮廓的点是无序的,现需要一种算法将这些点串联起来,描叙如下:
从某点出发
1)如该点为1则将该点保存到一个线段对象(CLine)中,在将该点标为已访问标志以防止重复访问;
2)若该点周围有其他点,选取一个点将其设为当前点重复1);
3)否则在线段对象(CLine)中添加一个特殊点Point(0xffff,0xffff)表示一条线段的结束.
4)寻找下一条线段.直到所有的点都被访问为止.

问题:
如何使这些线段最长,数量最少???

本人设计了一个算法:即对每个分支进行预测,取分支最长的,但该方法运算量巨大,耗内存和时间,对简单几何图形还可以,但稍复杂的图形就会引起程序无响应,得不到结果;
所以现请各位大侠赐教其他可行的算法<<<<<<<<<<<<救命之恩,莫齿难忘
...全文
1030 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
microdraw 2006-05-08
  • 打赏
  • 举报
回复
这样组织算法弊病太大了.建议找些源码先研究一下.
xzxiao 2006-04-25
  • 打赏
  • 举报
回复
1.将轮廓线分成单连通的点集。
2.对每个单连通点集,从任一端点出发(如果没有端点就是一个闭环,存为一条线条),遇到分叉点任选一个,把另一个记为下一个线条的起点,不影响线条数量。
lanzhu5025 2006-04-25
  • 打赏
  • 举报
回复
?????
yuanss71 2006-03-14
  • 打赏
  • 举报
回复
什么思路 给点提示 帮你 参考
lanzhu5025 2006-03-14
  • 打赏
  • 举报
回复
o 靠
难道没人能回答我的问题吗?????????????????????????
yaoike 2006-03-09
  • 打赏
  • 举报
回复
难道就没人回答我的问题吗??讨论讨论也可以啊!

19,468

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 图形处理/算法
社区管理员
  • 图形处理/算法社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧