答案 0 :(得分:4)
我不会使用OpenCV进行中心查找,而是使用简单的2D几何体来查找自身,而是参见Circular approximation of polygon (or its part)中的第一个项目符号,因此:
过滤掉不在曲线上的斑点
细分并删除太小的(未连接的)斑点
在曲线上找到3个点
它们应该彼此隔开足够的距离,并应形成2条线(黑色)。您可以应用细化算法来提高精度。而不是简单地从曲线中找到2个最远的点,并且在它们之间的一半处找到一个点。
从中点(棕色)投射法向轴
通过交换方向向量x,y
并否定其中一个,从而(-y,x)
或(y,-x)
来简单地将线的坡度旋转90度。
找到十字路口为其要寻找的中心
查找半径
它是中心到三个点之间的平均距离...
这是我刚刚在油漆中做过的一个小例子(它的手绘效果并不完美):
答案 1 :(得分:1)