gpt4 book ai didi

c++ - 使用 OpenCV 进行手部检测

转载 作者:可可西里 更新时间:2023-11-01 17:46:57 39 4
gpt4 key购买 nike

我在图像处理项目中使用 OpenCV 库来检测手部。我在 iplimage 中初始化图像,对其着色,然后使用 cvCvtColor(imageHand,imageHand,CV_BGR2HSV ); 将其转换为 HSV我不知道有效的算法,所以这是我的问题。请检查我的代码:

for( int row = 0; row < imageHand->height; row++ )
{
for ( int col = 0; col < imageHand->width; col++ )
{
h =(imageHand->imageData[imageHand->widthStep * row + col * 3]) ;
s = (imageHand->imageData[imageHand->widthStep * row + col * 3 + 1]);
v = (imageHand->imageData[imageHand->widthStep * row + col * 3 + 2]);

if( h>85)
{
imageHand->imageData[imageHand->widthStep * row + col * 3 ] = 0 ;
imageHand->imageData[imageHand->widthStep * row + col * 3 + 1 ] =0 ;
imageHand->imageData[imageHand->widthStep * row + col * 3 + 2 ] = 0 ;
}
else
{
imageHand->imageData[imageHand->widthStep * row + col * 3 ] = 255 ;
imageHand->imageData[imageHand->widthStep * row + col * 3 + 1 ] = 255 ;
imageHand->imageData[imageHand->widthStep * row + col * 3 + 2 ] = 255 ;

}


}
}

我认为搜索到的h的范围是> 85!?如果您知道更好的算法,请指导我。

最佳答案

如果您查看此站点,Hand detection using opencv , 你会发现一个类似的 algorithm到你正在使用的东西。我会说检测手的最简单方法是通过使用颜色(即皮肤检测)。我肯定会建议先查看该站点提供的算法。还有另一部分也涉及手势识别,如果这是您需要处理的最终问题。

其他可能性包括:

  • 背景减法
    • 这非常简单并且容易出错,尤其是当您计划更改背景时。但是,如果您希望只在白墙前使用它……这可能是一种简单的实现方式。
  • 形状分析
    • detecting fingertips 取得了一些成功使用广义霍夫变换。然而,误报可能令人担忧,而效率则令人担忧,尤其是在具有大量背景的情况下。

关于c++ - 使用 OpenCV 进行手部检测,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9168785/

39 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com