繁体   English   中英

如何使用numpy.polyfit来拟合图?

[英]How to use numpy.polyfit to fit an graph?

我下面有一张图片。 形状为720x1280。 我想画一条线以适应这种白色图案。

在此处输入图片说明

我使用y范围而不是x是因为y更适合作为二阶多项式。

y_range = np.linspace(0, 719, num=720) # to cover same y-range as image
fit = np.polyfit(y_range, image, 2) # image.shape = (720, 1280)
print(fit.shape) # (3, 1280)

我期望fit.shape = (3,) ,但事实并非如此。

  1. 在这种情况下可以使用np.polyfit()吗?
  2. 如果1.是真实的,该怎么做? 我想使用fit来计算曲线,如下所示。

f = fit[0]*y_range**2 + fit[1]*y_range + fit[2]

谢谢。

您的image是二维的,这就是问题所在。 2-D图像包含有关每个点的坐标的信息,因此您只需将其放入合适的格式即可。

由于您似乎只对白色像素的位置感兴趣(而不对每个像素的特定值感兴趣),因此将图像转换为二进制值。 我不知道您的image特定值,但您可以这样做:

import numpy as np
curoff_value = 0.1 # this is particular to your image
image[image > cutoff_value] = 1 # for white pixel
image[image <= cutoff_value] = 0 # for black pixel

获取白色像素的坐标:

coordinates = np.where(image == 1)
y_range = coordinates[0]
x_range = coordinates[1]
fit = np.polyfit(y_range, x_range, 2)
print(fit.shape)

如您所愿返回(3, )

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM