【问题标题】:OpenCV: How to detect rhombus on image?OpenCV:如何检测图像上的菱形?
【发布时间】:2016-12-06 23:51:22
【问题描述】:

我对一些平面图像进行了透视变换。

我需要检测每个白色菱形或菱形本身的中心。

这里是例子:

据我所知,如果我们纠正图像,可以通过简单的模板匹配来解决问题,但我需要自动完成。

OpenCV 中是否有适合此任务的函数?还有其他想法吗?

【问题讨论】:

  • 有很多可能的方法来做到这一点,但没有一个是容易做到的,让工作正常并展示给你。到目前为止,您尝试过什么?

标签: opencv computer-vision detection projection perspectivecamera


【解决方案1】:

这是我刚刚在没有纠正视角问题的情况下进行的两个快速测试。

数学形态学

  1. 提取红色通道
  2. 大白礼帽,用于检测所有明亮区域,但没有大的明亮反射。
  3. 白色小礼帽,用于仅检测菱形之间的细线
  4. 2 减去 3 的结果。菱形之间的线条变细甚至消失。
  5. 打开以清理最终结果。

这里有两个结果:Image1Image2。主要问题是菱形的大小不一样(不同的放大倍数和透视),这可能会给数学形态学带来问题。

所以这里是使用霍夫变换的另一种解决方案

  1. 您从上一算法第 3 步的结果图像开始。
  2. 您应用了霍夫变换。

结果如下:Hough1Hough2。然后你必须在是否接触菱形的线条之间进行过滤,但你可以使用我的第一个算法。即使第一个算法没有检测到所有的菱形,大部分都会被检测到,并且足以检测到与菱形接触的线。然后线交叉点将是您正在寻找的质心。

【讨论】:

  • 好答案。最好在帖子本身中包含图片。有没有办法使用检测到的霍夫线来校正图像?
  • Mmm... 问题在于将线交叉点与图像上的确切位置相匹配,这会很痛苦,因为太阳能电池板是不同的。所以我宁愿使用阈值来检测面板边框,然后是角。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-03-20
  • 2021-07-03
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多