将圆图转换为水平图

2024-05-16 03:14:36 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个带有圆形x轴的图形,里面有一些对象。你知道吗

  1. 我想转换图形并使其x轴水平。你知道吗
  2. 我想测量x轴上方每个物体的高度(像素距离)。你知道吗

我尝试了numpy阵列,但只能得到轴和对象之间的垂直像素差,而不是真正的最小像素差。我想我应该对所有的圆x轴点进行迭代,然后测量到一个物体的距离,但是我该怎么做呢?你知道吗

enter image description here

编辑: 这是原始图像

enter image description here


Tags: 对象图像numpy图形编辑距离高度水平
1条回答
网友
1楼 · 发布于 2024-05-16 03:14:36

我认为你的问题有几种可能的解决办法。你知道吗

1-转换回笛卡尔图像

这是一个简单的解决方案:将极坐标图像转换回笛卡尔坐标,然后计算到两条水平线的距离。为此,你需要两个圆的圆心和半径,我假设你已经把它们画在图像上了。翘曲的技术解决方案在这个问题中讨论:Reprojecting polar to cartesian grid

2-直接几何计算

这比第一点更简单,如果不需要进一步处理,可以直接实现解决方案。你知道吗

同样,假设你知道每个圆的中心位置(X,Y)以及半径R。如果你在图像中有一个坐标点(X,Y),你可以使用一个简单的欧几里德距离计算来计算到圆心的距离:d=sqrt((X-X)**2+(Y-Y)**2)。到圆的距离就是R-d。用python编写,使用numpy,可以得到如下结果:

def distToCircle(pt, center, R):
    d = np.linalg.norm(center-pt)
    return R-d

相关问题 更多 >