我正在尝试将二维高斯拟合到图像中。噪声很低,所以我试图旋转图像,使两个主轴不同时变化,算出最大值,然后计算两个维度的标准偏差。选择的武器是Python。
。
然而,我一直在寻找图像的特征向量——numpy.linalg.py假设离散的数据点。我想把这幅图像作为概率分布,取样几千点,然后根据这个分布计算特征向量,但我确信一定有一种方法可以直接从这幅图像中找到特征向量(即高斯椭圆的半长轴和半长轴)。有什么想法吗?
非常感谢:)
只是一个简短的说明,有几个工具来适应高斯图像。我唯一能想到的就是Scikits.Learn,它不是完全面向图像的,但我知道还有其他的。
准确地计算协方差矩阵的特征向量是非常昂贵的。您必须将图像的每个像素(或大的ISH随机采样)与X、Y点相关联。
基本上,你会做如下的事情:
import numpy as np
# grid is your image data, here...
grid = np.random.random((10,10))
nrows, ncols = grid.shape
i,j = np.mgrid[:nrows, :ncols]
coords = np.vstack((i.reshape(-1), j.reshape(-1), grid.reshape(-1))).T
cov = np.cov(coords)
eigvals, eigvecs = np.linalg.eigh(cov)
相反,您可以利用它是一个定期采样的图像的事实,并计