【发布时间】:2017-11-24 17:06:39
【问题描述】:
我在直方图中有一张具有多元高斯分布的图像。我想将图像分割成两个区域,以便它们都可以遵循正态分布,如直方图中显示的红色和蓝色曲线。我知道高斯混合模型可能适用于此。我尝试使用 fitgmdist 函数,然后对这两个部分进行聚类,但仍然无法正常工作。任何建议将不胜感激。
下面是我的方法的 Matlab 代码。
% Read Image
I = imread('demo.png');
I = rgb2gray(I);
data = I(:);
% Fit a gaussian mixture model
obj = fitgmdist(data,2);
idx = cluster(obj,data);
cluster1 = data(idx == 1,:);
cluster2 = data(idx == 2,:);
% Display Histogram
histogram(cluster1)
histogram(cluster2)
【问题讨论】:
-
代码中的
temp是什么? -
@BrendanFrick 抱歉 temp 只是我的一维图像像素。为了清楚起见,我将 temp 更改为等于 I(:) 的数据
标签: matlab image-processing gaussian