相关疑难解决方法(0)

如何在Python中插值2D曲线

我有一组x和y坐标,它是曲线/形状,我想要使曲线/尖锐化并绘制图形。

我尝试了不同的插值来平滑曲线/形状,但是仍然不能满足我的期望。使用点绘制平滑的曲线/形状。

如下所示,使用x,y点获得平滑的圆/曲线 在此处输入图片说明 在此处输入图片说明

但是,我得到类似

circle.jpg 在此处输入图片说明

curve.jpg 在此处输入图片说明

square.jpg 在此处输入图片说明

我在样条插值和rbf插值方面也遇到麻烦。

对于cubic_spline_interpolation,我得到了

ValueError:输入数据错误

对于univariate_spline_interpolated,我得到了

ValueError:x必须严格增加

对于rbf,我得到了

numpy.linalg.linalg.LinAlgError:矩阵是单数。

我有办法修复它们并获得正确的锐利度和弯曲度。非常感谢您的帮助。

编辑 对于那些无法下载源代码和x,y坐标文件的人,我发布了相关代码和x,y坐标。

以下是我的代码:

#!/usr/bin/env python3
from std_lib import *

import os
import numpy as np
import cv2

from scipy import interpolate
import matplotlib.pyplot as plt

CUR_DIR = os.getcwd()
CIRCLE_FILE = "circle.txt"
CURVE_FILE  = "curve.txt"
SQUARE_FILE = "square.txt"

#test
CIRCLE_NAME = "circle"
CURVE_NAME  = "curve"
SQUARE_NAME = "square"

SYS_TOKEN_CNT = 2   # x, y

total_pt_cnt = 0        # total no. of points      
x_arr = np.array([])    # …
Run Code Online (Sandbox Code Playgroud)

python interpolation scipy

1
推荐指数
1
解决办法
4274
查看次数

标签 统计

interpolation ×1

python ×1

scipy ×1