【问题标题】:Extracting clock hands from an image从图像中提取时钟指针
【发布时间】:2019-11-26 00:48:43
【问题描述】:

我目前正在开发一个从模拟时钟图像中提取时间的应用程序。我在从图像中提取手时遇到问题。

我目前正在使用霍夫圆来提取钟面,然后执行精明的边缘检测并拨号图像。然后最后一个霍夫线变换来提取手。然而,霍夫线变换也会检测到时钟边缘的一些错误线和数字等以及时钟指针。

为了解决这个问题,我尝试了获取时钟的中心并检查该点是否位于检测到的线上,因为时钟的指针总是穿过中心。然而,霍夫线并不总是 100% 准确,中心点也不是,因此并非所有线都通过中心。反正有没有看一条线是否通过一个点附近?

这是一个示例图像:

可以看出,霍夫变换最初确实检测到了线条,但它们并没有完美地通过原点。所以他们被丢弃了。

【问题讨论】:

  • 你可以通过用一个简单的圆形内核扩张时钟指针来使时钟指针包含中心点。

标签: python opencv computer-vision feature-extraction


【解决方案1】:

您可以使用此处给出的公式计算点与线之间的距离:https://en.wikipedia.org/wiki/Distance_from_a_point_to_a_line

公式本身有点复杂(这就是为什么我只发布链接),但是如果你有你的线的坐标,你应该可以使用它。

如果你把A称为中心点,这个距离的准确定义是the distance between A and the point of the line that is the closest to A。我想你可以使用一个阈值来过滤掉离中心太远的线。但请注意,如果您的线是与中心对齐但不通过它的线段(例如,如果它是远离中心的数字),则阈值方法仍然会产生它。

【讨论】:

  • 好的,谢谢,我会试试这个。它与我所考虑的非常接近,距离中心只有一段距离。
  • 这似乎与提取线条有关。
  • 太棒了 :) 很高兴能提供帮助
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2016-05-26
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-10-18
  • 1970-01-01
  • 2014-06-05
相关资源
最近更新 更多