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 + -
显示快捷键?