0

我想有效地找到由圆的圆周和图像之间的交点描述的线的坐标(圆的原点在图像之外)。现在我在 python 中使用一个循环从图像的一个边缘开始,一次在图像中移动一步。每一步移动一定的距离(比如 0.01 英寸)。我计算移动该距离所需的角度,然后使用极坐标几何公式定义下一个像素坐标。这一切都很好,但是,这需要很长时间。随着圆半径的增加,我在图像中创建了许多这样的线。

有没有办法使用内置函数或基于数组的公式,这样我的算法就不必有这么多步骤?基本上,在 python 2 中实现这一目标的最有效方法是什么?

谢谢,rb3

4

1 回答 1

0
# circle parameters 
x0 = -5
y0 = -5
R = 25
# image size
max_x = 100
max_y = 100
# sample points
theta = np.linspace(0, 2*np.pi, 2048) # make bigger if you have huge images
# the pixels that get hit
xy = list(set([xy for xy in zip( (R * cos(theta) - x0).astype(int), (R * sin(theta) - y0).astype(int)) if
               xy[0] >= 0 and xy[0] < max_x and xy[1] >= 0 and xy[1] < max_y]))
于 2013-09-14T18:15:37.560 回答