applygmms.m

来自「Matlab skin detector。运用高斯混合模型训练的到人的皮肤颜色分」· M 代码 · 共 46 行

M
46
字号
% 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 + =
减小字号Ctrl + -
显示快捷键?