我有一个带有圆形x轴的图形,其中有一些对象。
我用numpy数组尝试了此操作,但是只能获得轴和对象之间的垂直像素差,而没有真正的最小像素差。我想我应该对所有圆形x轴点进行迭代并测量到一个对象的距离,但是我该怎么做?
编辑: 这是原始图片
答案 0 :(得分:1)
我认为您的问题有几种潜在的解决方案。
1-转换回笛卡尔图像
这是一个简单的解决方案:将极坐标图像转换回笛卡尔坐标,并计算到两条水平线的距离。为此,您将需要两个圆的中心和半径,因为您已将它们绘制在图像上,所以我认为您已经有了。在以下SO问题中讨论了翘曲的技术解决方案:Reprojecting polar to cartesian grid
2-直接几何计算
这比第一点还要简单,如果不需要进一步处理,则可以直接实施解决方案。
同样,假设对于每个圆,您都知道其中心的位置(X,Y)以及半径R。如果图像中有坐标点(x,y),则可以计算距离使用简单的欧几里德距离计算得出圆心:d = sqrt((Xx)** 2 +(Yy)** 2)。到圆的距离就是R-d。使用numpy在python中编写的代码,它会给出类似以下内容:
def distToCircle(pt, center, R):
d = np.linalg.norm(center-pt)
return R-d