【问题标题】:Recognizing Rectangle shape识别矩形
【发布时间】:2011-07-20 09:29:44
【问题描述】:

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

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

谢谢

【问题讨论】:

  • 不,我正在使用 WPF。我已经做的是计算所有点之间的角度,但不认为这会起作用......
  • 平心而论,你只需要 3 个角为 90 度就可以成为一个矩形。
  • @Gleno :是的,这个,以及 startPoint 和 endPoint 足够接近你的喜好!

标签: c# algorithm gesture-recognition


【解决方案1】:

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

【讨论】:

    【解决方案2】:

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

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

      • 在第 1 步中,您可以使用许多趋势线计算算法,可能值得您花时间检查其中的一些。

    如果所有点都被采样到同一个集合中,您首先需要将此集合分成 4 个笔画(这本身就是一项艰巨的任务……更艰巨的任务)

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-01-28
      • 1970-01-01
      • 1970-01-01
      • 2013-12-13
      • 1970-01-01
      • 2014-03-27
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多