【发布时间】:2016-11-22 10:30:57
【问题描述】:
我有一个包含 600x600 整数值的数组。 这些值代表一个圆圈。 例如:0 是在圈外,>=1 是圈内。 这是一个简短的例子:
0000110000000
0001111000000
0011111200000
0112112110000
1111111111000
0111411110000
0011131100000
0000110000000
0000000000000
0000000000000
圆在数组中的位置和大小不同。 现在,我正在寻找一种快速算法来找到圆的中心和半径。 快,因为我必须处理许多数组。
【问题讨论】:
-
你给出的例子在正常情况下没有中间或半径,
-
在开始寻找算法之前,您需要先解决中间和半径的含义。这取决于您是否希望将整数或双精度值作为中心和半径的值。你如何处理分数以及你允许多少模糊等等。有几种算法可以做到这一点,但它们都带有假设。
-
您可以使用Circle Hough Transform。
-
同意@LURD - 如果这是一个模糊问题,那么霍夫圆变换可能是最好的答案。在OpenCV中实现,省了很多工作。
标签: arrays algorithm delphi pascal