- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
Chromadist
Chromadist:
function [cb, cr] = ChromaDist(filename)
% return the chromatic components of the image
%回返图像的彩色的成份
% low pass filtering is carried out to remove noise
% 低点途径过滤是被运的外面对距离噪音
im = imread(filename);
imycc = rgb2ycbcr(im);
lpf = 1/9 * ones(3);
cb = imycc(:,:,2);
cb = filter2(lpf, cb);
cb = reshape(cb, 1, prod(size(cb)));
cr = imycc(:,:,3);
cr = filter2(lpf, cr);
cr = reshape(cr, 1, prod(size(cr)));
ColorDistPlot.m :
function color = ColorDistPlot(cb, cr)
% plot the chromatic color distribution of the image
% 情节彩色的彩色分配那图像
chroma = zeros(256);
cb = round(cb);
cr = round(cr);
for i = 1:length(cb)
chroma(cb(i), cr(i)) = chroma(cb(i), cr(i)) + 1;
end
surf(chroma)
SegmentSkin.m
function [skin1, skin2, optimalThreshold] = SegmentSkin(filename, bmean, rmean, brcov)
% Assume the skinmodel.m is run
% 承担 skinmodel.m 是奔跑
% Produce two images, skinlikelihood greyscale image, skin1
% 农产品二个图像, skinlikelihood greyscale 图像, 皮肤 1
% and skin segment binary image, skin2
% 而且皮肤片段二进位的图像, 皮肤 2
im = imread(filename);
imycbcr = rgb2ycbcr(im);
dim = size(im);
skin1 = zeros(dim(1), dim(2));
for i = 1:dim(1)
for j = 1:dim(2)
cb = double(imycbcr(i,j,2));
cr = double(imycbcr(i,j,3));
x = [(cb-bmean); (cr-rmean)];
skin1(i,j) = exp(-0.5* x*inv(brcov)* x);
end
end
lpf= 1/9*ones(3);
skin1 = filter2(lpf,skin1);
skin1 = skin1./max(max(skin1));
% Adaptive Thresholding
% 适合的门槛
previousSkin2 = zeros(i,j);
changelist = [];
for threshold = 0.55:-0.1:0.05
skin2 = zeros(i,j);
skin2(find(skin1threshold)) = 1;
change = sum(sum(skin2 - previousSkin2));
changelist = [changelist change];
previousSkin2 = skin2;
end
% Finding the optimal threshold
% 发现最佳的门槛
[C, I] = min(changelist);
optimalThreshold = (7-I)*0.1
skin2 = zeros(i,j);
skin2(find(skin1optimalThreshold)) = 1;
figure(1)
imshow(skin1, [0 1]);
figure(2)
imshow(skin2, [0 1]);
skinmodel.m
% 32500 skin samples from 17 color images will be used here to determine the
%32500 皮肤样品从 17种颜色图
文档评论(0)