基于YCbCr色彩模型的简易肤色识别器
2024-09-08 10:06:26
一、实验方法
实验共选取了12张图像,利用画笔工具在每幅图像上选取5个点,并分别记录RGB值。取点方式如下图所示:
总共70个点,R,G,B的值分别如下表所示:
RGB色彩模型和YCbCr色彩模型的互化变换公式:
将上述70个点分别带入公式,分别求出Y,Cb,Cr的最大值和最小值如下表所示:
测试的5张实验效果图分别如下:
在算法对场景照明的敏感度方面,同一图片在不同场景照明下的对比图分别如下所示:
当在场景照明发生变化,变暗的情况下肤色与背景差异变小,难以监测到所有的皮肤,所以所设计的算法对场景照明具有较低的适应性。
二、程序代码
files=dir('C:\Users\kkzhang\Desktop\fuse\*.jpg');
for i=1:length(files)
s=files(i).name;
RGB=imread(s);
YCbCr=rgb2ycbcr(RGB);
Y=YCbCr(:,:,1);
Cb=YCbCr(:,:,2);
Cr=YCbCr(:,:,3);
imshow(RGB);title('RGB');
figure,imshow(YCbCr);title('YCbCr');
I=RGB;
rows=size(YCbCr,1);
columns=size(YCbCr,2);
for i=1:rows
for j=1:columns
if 87<Y(i,j)&&Y(i,j)<230&&93<Cb(i,j)&&Cb(i,j)<123&&134<Cr(i,j)&&Cr(i,j)<173 %肤色范围
I(i,j,:)=255;
else
I(i,j,:)=0;
end
end
end
figure,imshow(I);
end
实验图像:https://pan.baidu.com/s/1l4rbTBjOYK-cGKApD2e-_A
怀绝望之心,行希望之事。
转载需说明出处,笔者总结之前的知识,与大家分享,有问题的可以留给我哦~
最新文章
- [LeetCode] Course Schedule II 课程清单之二
- 支付宝App支付签名和验签
- Redis中7种集合类型应用场景
- ionic 写一个五星评价(非指令)
- C#打印条码的几种方式
- leetcode 138. Copy List with Random Pointer ----- java
- python数据类型之 set
- 5方与5W
- cocos2d-x3.9 默认是 gnustl_static 配置,但是 这个库缺少c++的基础功能... c++_static 功能全面些
- uoj#67. 新年的毒瘤(割顶)
- stl 和并查集应用
- panic: interface conversion: interface {} is nil, not chan *sarama.ProducerError
- Webpack模块的导出以及之间的依赖引用
- Java 中遇到null 和为空的情况,使用Optional来解决。
- Excel大批量数据导出
- H5 19-序选择器下
- Listary的使用
- SharePoint每日小贴士Web部件
- BZOJ.1070.[SCOI2007]修车(费用流SPFA)
- linux 为什么要关闭selinux
热门文章
- Go通过cobra快速构建命令行应用
- 使用 shell 脚本自动获取发版指标数据
- .Net中字符串不变性与相等判断的特殊场景
- Java包装类,基本的装箱与拆箱
- Jenkins Build step &#39;Execute shell&#39; marked build as failure
- QtWebEngine性能问题
- gol处理命令行参数 flag
- linux fedora35 配置jdk,安装mysql,安装tomcat
- linux下虚拟环境venv的创建与使用以及virtualenvwrapper
- vs code 终端字体间距过大(全角的样子)