这几天做了一个指尖检测的测试程序,效果一般,主要是受环境影响比较大。目前我做的将手从复杂环境中提取出来的测试程序效果不是很好,受光影响较大,虽然我已经把RGB颜色空间转换了,将光强和色调隔离开来,但是还是有比较大的影响,后面会优化。
首先用肤色检测将手提取出来,当然更简单的方法就是直接用阈值二值化,在某些简单背景下还行。下面是用肤色检测提取出的手掌图。

我用cvErode(dst,dst,NULL,2)和cvDilate(dst,dst,NULL,1)进行开闭处理,可以去掉一些小孔,然后将上图进行边缘提取cvCanny(dst,thinImage,50,150,3)。提取了边缘后,将每一类边缘用一个数据结构储存起来。我将这些边缘存放在CvSeq* contour中。
边缘提取后的效果图

本文介绍了作者进行指尖检测测试的过程,通过肤色检测和边缘提取等方法,使用CvSeq*数据结构存储边缘点集。尽管环境光影响明显,作者计划进行优化。后续将探讨其他检测方法,如细化手指找端点,目前仍在测试阶段。
最低0.47元/天 解锁文章
2万+





