求助:一个看似简单的关系断定算法??

linyang4242 2008-10-16 08:39:17
如图: --------------
| 2 |
| ----- |
| | 3 | |
| |---| |
|------------| (这个是大致拓扑图,具体的图像可以简化,如是二值图像等)区域2包含区域3 ,有什么算法可以判定这个包含关系吗??
...全文
131 19 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
19 条回复
切换为时间正序
请发表友善的回复…
发表回复
vcPlayer 2008-10-20
  • 打赏
  • 举报
回复
[Quote=引用 17 楼 linyang4242 的回复:]
引用 16 楼 whoo 的回复:
转换成区域RGN来计算。

如果 RGN2 和 RGN3 的交集 等于 RGN3,就说明是完全包含的。


恩,这个是数学的定义了,那交集有办法编程实现吗??
[/Quote]

CRgn::CombineRgn 可以合并两个区域。
BOOL EqualRgn( CRgn* pRgn ) const;用于比较。
jeff994 2008-10-20
  • 打赏
  • 举报
回复
有啊,先拿到区域的得像素,转化为2值图。

a = 区域2的2值图, 如果拿不到3的,就把洞填满。
b = 区域3的2值图,

c = a + b;

换c 为2值图, (if c > 0, c = 1);

比较a, c;
if(a == c) for 每一个像素,
then a 完全包含b
linyang4242 2008-10-20
  • 打赏
  • 举报
回复
[Quote=引用 16 楼 whoo 的回复:]
转换成区域RGN来计算。

如果 RGN2 和 RGN3 的交集 等于 RGN3,就说明是完全包含的。
[/Quote]

恩,这个是数学的定义了,那交集有办法编程实现吗??
whoo 2008-10-18
  • 打赏
  • 举报
回复
转换成区域RGN来计算。

如果 RGN2 和 RGN3 的交集 等于 RGN3,就说明是完全包含的。
linyang4242 2008-10-18
  • 打赏
  • 举报
回复
对于凹多边形,要怎么判断呢??
zqlin555 2008-10-17
  • 打赏
  • 举报
回复
-------------
| 2 |
| ----- |
| | 3 | |
| |---| |
|-----------|
1)首先确定区域2能包含区域3
2)在区域3中任取一点  找出该点到区域2和区域3最长的距离,然后比较得出结果

linyang4242 2008-10-17
  • 打赏
  • 举报
回复
[Quote=引用 11 楼 Waiting4you 的回复:]
可以这样,
设有内部区域a和外部区域b,要证明a被b包含:
在a内任取一顶点,从这点和其它顶点画线,形成一个个小三角形,然后证明b的任何边线都没有穿过这些三角形.
现在的问题就简化成:证明一条线是否穿过一个三角形
[/Quote]

1)如果这个a是个圆,那不没有顶点吗?
2)a ,b如果相离,那按照这个方法也是没有穿过
Waiting4you 2008-10-17
  • 打赏
  • 举报
回复
这样判定出来的要么完全包含,要么完全不包含.
如果再能证明a的一个顶点被b包含,那么就是完全包含.(网上找找,这是微软的一个笔试题)
Waiting4you 2008-10-17
  • 打赏
  • 举报
回复
可以这样,
设有内部区域a和外部区域b,要证明a被b包含:
在a内任取一顶点,从这点和其它顶点画线,形成一个个小三角形,然后证明b的任何边线都没有穿过这些三角形.
现在的问题就简化成:证明一条线是否穿过一个三角形
Waiting4you 2008-10-17
  • 打赏
  • 举报
回复
好像不可行,想像一下一个正方形,把它转45度,那么它的最上,最下,最左,最右都比不转动时大,但它并不包含.
linyang4242 2008-10-17
  • 打赏
  • 举报
回复
自己顶了,有人遇到类似的情况吗
linyang4242 2008-10-17
  • 打赏
  • 举报
回复
下面的算法对无规则的多边形可行吗:

1)对每个区域的【最上,最下,最左,最右】坐标点进行标示:(upper,bottom,left,right)
2)区域A包含区域B当且仅当A(upper,bottom,left,right)>=B(upper,bottom,left,right)
3)比较图像中各个区域。
rover___ 2008-10-17
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 linyang4242 的回复:]
关键是区域2,区域3都可能是无规则的多边形,不一定是正方形的。
这样不好办啊
[/Quote]
多边形如果是凸的,就按3楼方法。
rover___ 2008-10-17
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 jennyvenus 的回复:]
判断3的各顶点都在2中如何?
[/Quote]
条件是没有洞的区域。
linyang4242 2008-10-17
  • 打赏
  • 举报
回复
关键是区域2,区域3都可能是无规则的多边形,不一定是正方形的。
这样不好办啊
qq_sugar 2008-10-16
  • 打赏
  • 举报
回复
根据定点和多边形的关系判断?楼上说的有理!
判断定点是否在多边形内有很多快速算法。
用户 昵称 2008-10-16
  • 打赏
  • 举报
回复
判断3的各顶点都在2中如何?
用户 昵称 2008-10-16
  • 打赏
  • 举报
回复
------------- 
| 2 |
| ----- |
| | 3 | |
| |---| |
|-----------|
linyang4242 2008-10-16
  • 打赏
  • 举报
回复
这个图画的不好,但应该不影响理解吗,主要是包含不像相邻关系,比较容易判断。
而且各个区域有可能是无规则的多边形

19,473

社区成员

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

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