Python流畅的曲线

时间:2014-12-26 09:32:06

标签: python image curve

我有一组非常紧密的坐标。我通过使用python的image.draw.line()在它们之间绘制线来连接这些坐标。但是得到的最终曲线并不平滑,因为坐标处的线没有正确交叉。我也尝试绘制弧而不是线,但image.draw.arc()不会对坐标采用任何浮点输入。任何人都可以建议我连接这些点的其他方法,以便最终曲线将是平滑的。

2 个答案:

答案 0 :(得分:2)

样条线是生成连接一组点的平滑曲线的标准方法。请参阅Wikipedia

在Python中,您可以使用scipy.interpolate来计算smoth曲线:scipy.interplote

答案 1 :(得分:2)

Pillow并不支持很多画线的方法。如果您尝试绘制拱形,则无法选择厚度!

scipy使用matplotlib绘制图形。因此,如果直接使用matplotlib绘制线条,则可以通过axis('off')命令关闭轴。有关更多详细信息,您可以查看: Matplotlib plots: removing axis, legends and white spaces

如果您与轴无关,我建议您使用OpenCV而不是Pillow来处理图像。

def draw_line(point_lists):
    width, height = 640, 480  # picture's size
    img = np.zeros((height, width, 3), np.uint8) + 255 # make the background white
    line_width = 1
    for line in point_lists:
        color = (123,123,123) # change color or make a color generator for your self
        pts = np.array(line, dtype=np.int32)
        cv2.polylines(img, [pts], False, color, thickness=line_width, lineType=cv2.CV_AA)
    cv2.imshow("Art", img)
    cv2.waitKey(0)    # miliseconds, 0 means wait forever

lineType = cv2.CV_AA将绘制一条美观的抗锯齿线。