📄 applygmms.m
字号:
% Applies the EMed GMM matrices to an image
%%function labelim = jrmogskin(colorim)% colorim must have 3 color planes% colorim(:,:,1) = red pixel values, 0 to 255% colorim(:,:,2) = green pix values, 0 to 255% colorim(:,:,3) = blue pix values, 0 to 255
% skinMOG is the GMM matrix for skin models
% nonskinMOG is the GMM matrix for background models% labelim is 1 for skin pixels, 0 otherwise.
%
% based on jrmogskin by:% Robert Collins, Penn State University, 2005
%
% modified by:
% Anthony Dottererfunction labelim = applyGMMs(colorim, skinMOG, nonskinMOG)[nr,nc,nb] = size(colorim);if (nb ~= 3) error('input image must be color\n');endredvals = double(reshape(colorim(:,:,1),nr*nc,1));grevals = double(reshape(colorim(:,:,2),nr*nc,1));bluvals = double(reshape(colorim(:,:,3),nr*nc,1));skinscores = zeros(size(redvals));for i=1:size(skinMOG,1) p = skinMOG(i,:); tmp = ((redvals-p(1)).^2 / p(4) + (grevals-p(2)).^2 / p(5) + (bluvals-p(3)).^2 / p(6)); tmp = p(7) * exp(- tmp / 2) / ((2 * pi)^(3/2) * sqrt(p(4)*p(5)*p(6))); skinscores = skinscores + tmp;end
nonskinscores = zeros(size(redvals));for i=1:size(nonskinMOG,1) p = nonskinMOG(i,:); tmp = ((redvals-p(1)).^2 / p(4) + (grevals-p(2)).^2 / p(5) + (bluvals-p(3)).^2 / p(6)); tmp = p(7) * exp(- tmp / 2) / ((2 * pi)^(3/2) * sqrt(p(4)*p(5)*p(6))); nonskinscores = nonskinscores + tmp;endlabelim = reshape(skinscores > nonskinscores, nr , nc);return;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -