【发布时间】:2021-07-08 13:50:18
【问题描述】:
我正在尝试从噪声数据(例如示例中的圆圈)中估计/插值曲线。我的数据不仅包含圆圈,但这也应该是解决其他结构的一个很好的起点。
我有一个嘈杂的二进制图像,我正在尝试为它拟合一条连续的曲线/骨架(如果形状不是圆形,每个像素都有 2 个邻居,除了可能的开始和结束像素)。 我在分别拟合 x,y 坐标方面取得了一些成功,将到起点的距离用作 x 值,将坐标用作 y 值,然后以小步长插值距离。然后我检查坐标是否全部连接。在某些极端情况下,新的插值点没有连接,我必须使用更小的步骤进行插值。这通常还会导致像素具有超过 2 个相邻像素和其他奇怪的伪影。
有没有更简单的方法可以将这些值拟合到曲线上并得到一条连续曲线?
import numpy as np
from skimage import draw
from matplotlib import pyplot as plt
image = np.zeros((200,200), dtype=np.uint8)
coords = np.array(draw.circle_perimeter(100,100,50))
noise = np.random.normal(0,2,coords.shape).astype(np.int64)
coords += noise
image[coords[0], coords[1]] = 1
plt.imshow(image, cmap="gray")
plt.show()
【问题讨论】:
标签: python image-processing interpolation curve-fitting