網生@誌 | zEUS.'Blog

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

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

Tag: ,

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

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

彩色图像皮肤区域分割

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

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

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

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

zEUS.

« »

相关文章

已经有99人发表了评论

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

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

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

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

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

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

文章反相链接 Pingback/Trackback

  1. ghost hunting
  2. LED Lights
  3. world news
  4. Phil Cannella
  5. Space Race
  6. best supplement for muscle gain
  7. James Bond Books
  8. best seo blog
  9. Dallas Advertising
  10. servinion

发表您的看法