0
我有一个池塘的图像(草,沿边缘的岩石,水)。我想用GMM作为无监督分类器将图像分割成草,岩石和水。如何使用高斯混合模型按波长分割图像?
图像是形状为(800,800,4)的numpy阵列的形式,其中每个像素包含4个波长的强度数据。例如,像素x = 1 y = 1具有对应于波长[450,500,600,700]的强度数据[1000,2000,1500,4000]。
我试着使用,以适应GMM scikit学习:
gmm=GaussianMixture(n_components=3, covariance_type="tied")
gmm=gmm.fit(data)
但是,我得到了一个错误,指出该数据的预期尺寸应小于或等于2
是有没有可用于GMM的更高维数据的Python包或函数?
通过对4个值执行转换以减少它们,从而将其丢失了多少信息 - 从本质上将其转换为灰度图像? – chase
使用PCA,此数据已从150个频段减少至4个频段。我在考虑自组织映射以及转换为二维数组,但我的顾问坚持在当前数组上使用GMM。 –
目前还不清楚“数据”数组的维度对应于什么。 'GaussianMixture'的'.fit'方法(像scikit-learn中的每个其他估计器)都需要一个'(n_samples,n_features)'数组作为第一个参数。你的'(800,800,4)'数组中的每一行是否对应一个样本?或者'data'只是一张800x800x4的图片? –