網生@誌 | zEUS.'Blog

首页 » 与我有关 » 2008-10-7 »

彩色图象皮肤区域的分割研究与算法实现

Tag: ,
字体大小:T | T

Matlab不久前看到抽筋儿写了一篇关于 Matlab 的文章,于是就想起自己两年前,大三暑假所做的教学实验——彩色图象皮肤区域的分割研究与算法实现,所用的工具也是 Matlab ~ 哦,对了,现在在大学任教的小O 似乎一直也都在使用这款强大的数学软件!

何为彩色图象皮肤区域的分割呢?简单点说就是把一张包含人体皮肤的彩色图片,经过处理后只显示皮肤区域,其它不相干的区域用其他颜色覆盖。这个一般应用到人脸识别和人体动作识别上,算的上是当今还比较热门的研究。
整个处理流程分为以下几步骤:
1、打开一幅彩色图象
2、将图象从RGB颜色模型转换到YCbCr颜色模型
3、然后在YCbCr颜色模型中进行皮肤相似度的计算
4、给图象赋值,皮肤区域赋1也就是白色,非皮肤区域赋0也就是黑色
5、将图象中赋1的区域提取还原成原来的色彩
这样就基本可以显示出来了,如下图:

彩色图像皮肤区域分割

以上只是个大概的处理过程,其中我还必须进行统计建模,计算出无数统计的皮肤图象的均值M和协方差C,然后用简单高斯模型计算出皮肤区域的分布。在肤色相似度的计算过程中涉及到一个阈值的选取,有些同学采用了一个自适应的阈值算法,无奈我看不懂那些算法而且自适应的效果也不好,所以我就选取了一篇相关论文上的固定阈值,反而我效果比较好 😛

其中还有些细节问题,例如打开一幅非图象文件会进行报错提示,程序可以不按照顺序运行等等…

这里简单说一下为什么要将图象转换到YCbCr颜色模型下进行运算。Y代表的是图象的亮度,Cb和Cr是色度信息,在处理过程中不需要亮度,所以一般把Y省略不进行计算。该空间具有与人类视觉感知过程想类似的构成原理;YCbCr计算过程和空间表示比较简单,与RGB之前的换算是线形关系,避免了非线形空间的奇异性,因此有较高的计算效率;肤色在YCbCr色彩空间及其色度空间CbCr中聚类特性较好,YCbCr色彩空间是离散的,易于实现聚类算法。

这个程序是用Matlab写出来的,只有在Matlab中才能打开。点击 这里 下载源代码,其中 “.fig” 文件是图形文件 “.m” 是源程序,有用 Matlab 的同学可以拿去玩玩~ 虽然没啥实用效果~

zEUS.

« »

已经有171人发表了评论

  1. matlab是个相当好的东东
    这图片选的也很实用… 教学实习的时候就用的这张?

  2. 不好意思…完全没看懂…我是高数厌恶者…

  3. 盘踞在俺XP和Ubuntu里的噩梦——matlab

  4. 简单高斯模型计算 😯
    兄弟,你是高科技人才,俺数学一踏糊涂 😀

  5. 有点意思, matlab那种东西从来都没敢碰过…

  6. ➡ MATLAB是一个相当强悍的平台.

发表您的看法

TOP COMMENTS BOTTOM