识别矩形形状

时间:2011-07-20 09:29:45

标签: c# algorithm gesture-recognition

我有一个笔画点列表,我想检测这个笔画是否是矩形。 所以4个角度约为90度。之后我需要矩形的大小,位置和方向。

我正在使用C#,但其他语言的算法或伪代码也很有用。

由于

2 个答案:

答案 0 :(得分:1)

好吧,我刚才做了这样的事 您可以下载here http://up352.siz.co.il/up2/lhmjmdenn53m.png
这个东西可以让你检测边缘 - 正如你看到它非常准确 当你得到边缘时,你只需要计算它们之间的角度 - 如果它是~90那么它就是一个矩形。

答案 1 :(得分:1)

我假设您将每个笔划收集到一个单独的列表中:

  1. 找到笔划的趋势线(我以Simple linear regression开头)。
  2. 找出每两条相交趋势线之间的角度(与某个阈值相比为90度)。
  3. 找到任何趋势线的方向(角度)以获得形状的方向(当然,任何接近0 mod 90度的东西与方形的情况下的0相同)。
  4. 找出任何趋势线的长度(从一个交叉点到另一个交叉点的距离),以及它的相邻(交叉)线的长度,这两个长度将是您的长度和宽度(或宽度)和高度,如果你喜欢)的大小计算(面积,或其他任何)。

    • 在第1步中,您可以使用许多趋势线计算算法,您可能值得花时间查看其中的一些。
  5. 如果所有点都被采样到同一个集合中,你首先需要将这个集合分成4个笔划(这是一个自己的任务......更艰巨的任务)