三维数据集上的polyfit优化

时间:2016-01-14 17:25:11

标签: python image python-2.7 loops optimization

我正在尝试在红外图像上实现非均匀性校正算法。基本上我有一组黑体的图像,它应该处于非常精确和均匀的温度。但是由于相机硬件(传感器,光学......),你得到的图像并不均匀。 我有不同温度下的图像(640 * 512像素)(从18°C到30°C大约10张图像),我需要校正每个像素的值,以适应中心区域的平均值(应该是正确的价值)。

因此,对于每个像素,我需要拟合多项式函数p(阶数5):

x=p(y)

其中x是像素的值,y是中心区域的平均值。

现在我将我的图像矢量化以避免双循环,并在每个像素上循环:

import numpy as np
interp_degree=5
nb_of_pixels=640*512
image =np.random.rand(640,512)
mean_value=np.arange(18,28,1)
a=image.flatten()
DL=np.transpose([a for i in range(10)]) # I simplified up to this point for the example

K=np.empty((nb_of_pixels,interp_degree+1))
for i in range(len(DL)): # loop over each pixels
    K[i]=np.polyfit(DL[i],mean_value,interp_degree) # fitting
    DLC_NUC[i]=np.polyval(K[i],DL[i]) # eval the corrected value of the pixel for later use

这个循环在我的电脑上花了大约200秒,我想减少这个时间。 <{1}}和polyfit已使用多处理,因此这不是一种方式。

有没有办法改善这个?

0 个答案:

没有答案