У меня есть изображение с четырьмя разными цветами - темно-синим, голубым, еще более светлым синим - фон и белым - фон. Я хочу сегментировать только первые две категории
bG= mat2gray(image);
his=imhist(bG);
sai = gmdistribution.fit(his,4);
m1=sai.mu(1);
v1=sai.Sigma(1);
m2=sai.mu(2);
v2=sai.Sigma(2);
imt=bG<m2+v2;
figure;
imagesc(~imt);
Я получаю изображение со всеми пикселями 1. Матрица изображения bG имела значения меньше 1, но среднее значение и дисперсия каждого гауссова были намного выше.
Насколько я понял, bG является матрицей изображения и, следовательно, будет иметь значения интенсивности. поэтому все значения здесь меньше 1.
но средние значения четырех гуассианов равны: 0,8604 0,976 2,9182 6,6377. Это не похоже на интенсивность, поэтому, когда я попытался получить все пиксели в изображении меньше среднего значения секунды, все пиксели прошли тест. Есть кое-что, чего мне здесь не хватает. Может ли кто-нибудь помочь мне сегментировать темно-синие и светло-голубые клетки на основе смеси Гаусса. Любая помощь приветствуется!