gpt4 book ai didi

c# - 从像素坐标列表中查找圆的中心坐标 C#

转载 作者:行者123 更新时间:2023-11-30 16:38:44 24 4
gpt4 key购买 nike

我有一个位图图像,其中图像包含一个黑色圆圈。我从图像中找到了代表圆圈的所有黑色像素,并将这些点保存到列表中。

我迷路的地方是从列表中保存的坐标中找到圆心。我在想我需要以某种方式找到圆的直径,但我如何遍历像素来确定它呢?

最佳答案

一种天真的方法可能是找到圆的边界框。

鉴于您已经拥有列表中的所有点,您可以找到顶部、底部、左侧和右侧。

假设(0,0)是坐标系的左上角:

  • 顶部是最小 Y 的点。
  • 底部是 Y 最大的点。
  • 左边是最小X的点。
  • 右边是X最大的点。

边界框的中心是圆的中心。同样,边界框的宽度/高度就是它的直径。

编辑:替代解决方案

求圆中所有点的平均值。这将为您提供圆心。

var aggregate = points.Aggregate((point, result) => new Point{ X = point.X + result.X, Y = point.Y + result.Y });
var center = new Point { X = aggregate.X / points.Count, Y = aggregate.Y / points.Count };

这可能是一个更优的解决方案,因为它可以在您扫描图像的黑色像素时完成。而不是找到黑色像素然后使用 LINQ。

关于c# - 从像素坐标列表中查找圆的中心坐标 C#,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54544428/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com