我使用GMM分离出2个重叠的高斯。一个是信号,另一个是背景。背景始终具有比信号更低的值和均值。大多数时候,gmm.means_
的顺序是[lower_mean,higher_mean],这使得它预测0作为背景,1预测为信号。有时候,平均值的阶数是[higher_mean,lower_mean],这使得GMM预测它为0,噪声1(与我想要的相反)。我希望具有较低均值的高斯是背景(0),并且具有较高均值的一个是信号(1)。如何将GMM结果设置为正确的顺序或如何设置预测输出?基于高斯均值的scikit-learn高斯混合模型集预测输出
img = cv2.imread(path, -1)
img_flatten = img.flatten().reshape(img.flatten().shape[0],1)
gmm = GaussianMixture(n_components=2, covariance_type='full')
gmm.fit(img_flatten)
pred = gmm.predict(img_flatten) # how can I set the prediction value I want for each Gaussian?
print(np.round(g.means_, 2))
# gives [[ 66.31] [ 203.64]] on some images and [[ 67.32] [ 306.13]] on other