图像直方图的高斯混合模型

图像直方图的高斯混合模型,第1张

图像直方图的高斯混合模型

问题在于将直方图而不是像素强度数组传递给GaussianMixture.fit

gmm =gmm.fit(hist)
。我还发现,
n_components = 6
视觉上适合此特定直方图的最低要求。

import numpy as npimport cv2import matplotlib.pyplot as pltfrom sklearn.mixture import GaussianMixture# Read imageimg = cv2.imread("test.jpg",0)hist = cv2.calcHist([img],[0],None,[256],[0,256])hist[0] = 0     # Removes background pixelsdata = img.ravel()data = data[data != 0]data = data[data != 1]  #Removes background pixels (intensities 0 and 1)# Fit GMMgmm = GaussianMixture(n_components = 6)gmm = gmm.fit(X=np.expand_dims(data,1))# evaluate GMMgmm_x = np.linspace(0,253,256)gmm_y = np.exp(gmm.score_samples(gmm_x.reshape(-1,1)))# Plot histograms and gaussian curvesfig, ax = plt.subplots()ax.hist(img.ravel(),255,[2,256], normed=True)ax.plot(gmm_x, gmm_y, color="crimson", lw=4, label="GMM")ax.set_ylabel("Frequency")ax.set_xlabel("Pixel Intensity")plt.legend()plt.show()


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/5674902.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-16
下一篇 2022-12-17

发表评论

登录后才能评论

评论列表(0条)

保存