我有一系列积分。我想知道这个点数组是代表一个圆,一个正方形还是一个三角形。
我应该从哪里开始? (我使用C#)
由于 乔恩
答案 0 :(得分:5)
根据您的问题,针对此问题的一个好方法可能是使用Hough transform及其所有派生算法
它包括将图像空间转换为另一个空间,其中坐标表示对象参数(线的角度和初始点,中心的坐标和圆的半径)
该算法将您的点阵列中的每个点转换为另一个空间中的点。然后你必须在新的空间搜索一些点是否占优势。从这些点,您将获得对象的参数。
当然,您需要执行一次以识别线条(因此您将知道位图中有多少条线以及它们在哪里)并识别圆圈(它不是完全相同的算法)< / p>
您可以查看this lecture(对于Hough Circle变换),但您可以轻松找到行的算法
编辑:您还可以查看这些答案答案 1 :(得分:0)
想象它是这些中的每一个并尝试将这些形状中的每一个都放在数据上...对于一个正方形,你可以找到四个极端点,并尝试绘制一个遍历所有他们..
一旦你有一个到位的形状..你可以测量每个点之间的距离和最接近它的形状部分..然后平方这些距离并将它们相加...具有最小总和的形状正方形可能是你最好的选择
答案 2 :(得分:0)
答案 3 :(得分:-2)
我要采取疯狂的刺,并说如果你有3个点,形状代表一个三角形,4个点是某种四边形,不仅仅是圆形。
也许您可以提供更多有关您的问题的信息。