Python:将曲线拟合为整数列表

时间:2015-05-20 23:48:59

标签: python numpy matplotlib pixel

我有一个整数列表。

intList = [96, 98, 120, 163, 158, 166, 201, 201, 159, 98, 93, 73, 77, 72]

这些数字表示14个像素的条带的灰度值,我想在分布中拟合曲线并保存顶点的x位置。

为了上下文:我实际上正在使用(更多更大)列表列表,每个列表包含图像中一行像素的灰度值。对于每行像素,我想绘制一条曲线到数据,并将顶点的x位置附加到一个增长列表。每行像素都会产生一些噪声,但只有一个宽而清晰的像素强度峰值(下面的样本图像)

the image from which I am extracting data

我有NumPy,SciPy,matplotlib和枕头,但我不太了解每个中的许多函数。任何人都可以指出一个或多个可能会这样做的模块吗?

1 个答案:

答案 0 :(得分:4)

拟合多项式,例如二次方,使用SELECT l.`loadNumber`, l.`cfnNumber` , f.`value`, f.`date`, s.`address` FROM `loads` l LEFT JOIN `finances` f ON f.`load`= l.loadNumber LEFT JOIN `stops` s ON s.`load`= l.loadNumber WHERE `truck`='".$var2."'

polyfit

quadratic fit

适合更复杂的功能,例如高斯,你可以使用from pylab import * x = arange(len(intList)) p = polyfit(x, intList, 2) a, b, c = p x0 = -0.5*b/a # x coordinate of vertex # plot x = arange(len(intList)) plot(x, intList) plot(x, polyval(p, x)) axvline(x0, color='r', ls='--')

curve_fit

Gaussian fit

(虽然为了适应高斯,你可能最好直接计算分布的均值和方差。)