- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
数字图像处理
————肤色检测
学 院 电气信息工程
专 业 电子信息工程
班 级 信息11-2
姓 名 陈宾怡
学 号 02号
指导教师 董胜
一、设计思路
肤色检测原理是根据皮肤的固有色彩,在图像中选取相对应的颜色范围作为皮肤颜色。给定一幅包含人像的彩色图像,将其转换至其它表色系,利用肤色检测算法将皮肤区域以二值图像的形式检测出来并对比算法效果。在本次课程设计中,我们组确定将图像分别转换到HSV表色系和YCbCr表色系下,然后将不同表色系下的图像分别转换成相应的二值图,对比观察图像转换结果,以得到实验的实验结论。
1)HSV表色系下的肤色检测原理
HSV表色系包含三个属性:图像的色调(Hue),即表示相应的颜色;饱和度(Saturation),即表示颜色的纯度;亮度(Value),即颜色的亮暗程度。所以该表色系是分别对图像的色调,饱和度和亮度进行描述的,根据皮肤的固有色调可以提取出皮肤区域。
图像从Rgb表色系转换到hsv表色系固定公式如下:
2)YCbCr表色系下的肤色检测
YCbCr颜色空间将色彩表示为三个分景。即亮度Y,蓝色色度Cb和红色色度Cr。YCbCr表色系中将亮度信息与色彩信息分开,充分考虑了RGB三个分量在视觉感觉中的不同重要性而确定的。
图像从Rgb表色系转换到YCrCb表色系的转换公式为:
二、程序流程
1)HSV表色系下二值图转换流程
该点值为0 开始 初始化 读取图像并进行数值格式转换
该点值为0
开始
初始化
读取图像并进行数值格式转换
提取R,G,B通道
建立与原图大小相同的矩阵
利用公式将原图转换到HSV表色系下
将HSV表色系下图像确定皮肤RGB的取值范围
依次判断图像各点RGB是否在皮肤范围内
该点值为1
结 束
N
N
Y
Y
2)YCbCr表色系下二值图转换流程
EMBED Equation.KSEE3 \* MERGEFORMAT 该点值为0 开始 初始化
该点值为0
开始
初始化
读取图像并进行数值格式转换
提取R,G,B通道
建立与原图大小相同的矩阵
利用公式将原图转换到YCbCr表色系下
将YCbCr表色系下图像确定皮肤RGB的取值范围
判断图像各点RGB是否在皮肤范围内
该点值为1
结 束
N
N
Y
Y
三、设计中的难点及解决方案
1、该设计方案思路整体比较简单明确,设计过程中出现的问题主要集中在数据格式之间的转换问题,以及位图图像的显示范围之间的问题
1)在将原图转换成HSV表色系下的图像时,开始时候无法得到准确的HSV图像。在将原图像的unit8数据类型转换为im2double型,在H通道转换完成后的值除以360,保证了HSV图像的正确显示以及准确的RGB数据提取,进而得到正确的二值图像。
2)在将原图转换成YCbCr表色系下的图像时,以double型读取图像,相应的通道转换完成时将三个通道的值除以256,保证显示范围在(0,1)之间,得到正确的YCbCr表色系下的图像,然后才提取相应皮肤的RGB 的范围,完成二值图像的转换。
程序清单如下
1.主程序:
void CDipDoc::OnColorSkin()
{
// TODO: Add your command handler code here
//获取应用程序类指针
CDipApp *pApp = GetApp();
//获取主框架窗口指针
CMainFrame *pFrame = GetMainFrame();
CDibObject *Skin = new CDibObject(*m_pDibObject);
//创建Color类对象
CColor color(Skin);
// 更改光标形状
BeginWaitCursor();
if (color.DetectSkin(Skin))
{
POSITION posTemplate = pApp-GetFirstDocT
您可能关注的文档
最近下载
- 自动控制原理(第七版)课后习题答案解析.pdf
- 事件与概率(古典概率、条件概率、全概率公式、贝叶斯公式)小题综合解析- 十年(2015-2024)高考真题数学分项汇编(全国).pdf VIP
- (2025)小学生诗词大会竞赛试题及标准答案.docx VIP
- 临建工程施工组织设计.docx VIP
- 儿童吉兰-巴雷综合征谱系疾病与抗糖脂抗体相关性研究进展 .pdf VIP
- 2025年钛铁项目建设总纲及方案.docx
- AB-罗克韦尔PowerFlex755变频器操作说明.pdf
- 幼儿园小班科学活动《颜色变变变》含课件.pptx VIP
- 2025诗词大会精选100题题库(含答案).docx VIP
- 小学诗词大会精选100题题库(含答案).docx VIP
文档评论(0)