【问题标题】:How to detect square shape object in a video using opencv?如何使用opencv检测视频中的方形对象?
【发布时间】:2012-06-05 16:56:13
【问题描述】:

我想构建一个可以检测视频中方形物体的程序。我为此使用了 SURF 算法。但那只检测关键点。

【问题讨论】:

标签: opencv video-processing


【解决方案1】:

通常的方法是先用canny filter 检测边缘,然后用hough transform 检测线,然后找到斜率相差90度的线对

【讨论】:

  • 先生,非常感谢您的回复。我使用霍夫变换进行图像处理?但这适用于视频处理吗?
  • @Tk1988 - 视频只是图像。如果速度很重要,您可以使用另一种技术快速检查正方形是否与最后一帧在同一个位置,如果不是,请再次进行霍夫。或者您可以将 Hough 搜索空间限制为接近最后一次命中的参数
【解决方案2】:

您似乎没有对此进行任何搜索。如果你有,你会在你的电脑里找到这个代码。

用于正方形检测的代码(特别是矩形,您可以稍作修改使其仅适用于正方形)直接随 opencv 示例提供,下载 OpenCV 库时即可获得。

您没有指定您使用的语言。但代码来自 Python 和 C++。

Python , C++

它是如何工作的:

  • 将图像拆分为 R、G、B 平面
  • 对于每个平面,阈值图像的范围值在 0 到 255 之间
  • 找到轮廓,进行近似,然后选择只有 4 个点的轮廓
  • 求轮廓所有线之间夹角的余弦,检查是否接近 90
  • 如果是,就是矩形
  • 如果你想要正方形,检查它的所有边是否几乎相等。

效果很好。如果您看到了这个,并且这不是您想要的,请用更具体的细节更新您的问题,包括一些测试图像。

在提问之前,先用谷歌搜索你的疑问,甚至在 SOF 中搜索类似的问题。

希望对你有帮助!!!

【讨论】:

  • Stackoverflow 上有大量的例子展示了如何分别实现这两个任务,我在回答他的另一个问题时谈到了它们here。我相信这里的这个问题是重复的。
  • 是的.. 刚刚检查了那个链接。您的答案中明确给出了指向方形检测的链接。没有必要问这个问题,除非他想要别的东西。
猜你喜欢
  • 2015-08-24
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多