function [seg, M, mu, sigma] = EM(seg, img, mask, k, mu, sigma, beta, eps_EM, N_ICM, N_EM_max)
[R, C] = size(img);
i_em = 0;
while true
% E-Step:
% Print the log posterior probabilities before update
p_before = logPosterior(seg, img, mask, mu, sigma, beta);
% Compute MAP Label Image using ICM
seg = ICM(seg, img, mask, k, mu, sigma, beta, N_ICM);
% Print the log posterior probabilities after the ICM update
p_after = logPosterior(seg, img, mask, mu, sigma, beta);
fprintf("Before: %d | After: %d\n", p_before, p_after);
% Stopping condition
rel_change = abs(p_after - p_before) / p_before;
if rel_change <= eps_EM || (p_after < p_before)
break;
end
% Compute memberships
M = zeros(R, C, k); % M[i,j,k] denotes the membership value for pixel (i,j) to belong to class k
for r = 1:R
for c = 1:C
if mask(r, c) == 1
mij = zeros(k, 1);
for i = 1:k
% The Likelihood Term:
term_1 = G(img(r,c), mu(i), sigma(i));
% The Prior Term
term_2 = exp(-1*priorPenalty(seg, i, mask, r, c, beta));
mij(i) = term_1*term_2;
end
% Normalizing the memberships:
mij = mij ./ sum(mij(:));
M(r, c, :) = mij;
end
end
end
% M-Step: Update mu and sigmas according to the memberships computed (ICM Update)
for i = 1:k
% Get the memberships computed in the E-Step for class i
memb = M(:, :, i);
% Update the means
temp = memb .* img;
mu(i) = sum(temp(:)) ./ sum(memb(:));
% Update the sigmas
devs = (img - mu(i)).^2;
temp = memb .* devs;
var = sum(temp(:)) ./ sum(memb(:));
sigma(i) = sqrt(var);
end
i_em = i_em + 1;
% Just a sanity check to ensure that we don't run for too long
if i_em >= N_EM_max
break;
end
end
end
没有合适的资源?快使用搜索试试~ 我知道了~
资源推荐
资源详情
资源评论
收起资源包目录
基于HMRF-GMM-EM算法的医学图像分割matlab仿真.rar (13个子文件)
基于HMRF-GMM-EM算法的医学图像分割matlab仿真
操作录像0035.avi 4.69MB
matlab
func
ICM.m 1KB
logPosterior.m 888B
EM.m 2KB
showSegmented.m 320B
G.m 137B
KMeans.m 2KB
priorPenalty.m 440B
tops.m 2KB
data.mat 495KB
11.jpg 48KB
23.jpg 35KB
QQ截图20221113332211734.jpg 30KB
共 13 条
- 1
资源评论
fpga和matlab
- 粉丝: 15w+
- 资源: 2548
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功