通过在opencv中跟踪手指绘制线条

时间:2016-04-28 16:04:26

标签: opencv drawing line tracking opencv3.0

我是opencv的新手,我想检测一个手指是否向上它会在屏幕上画一条线,我读了一些教程,我正在跟踪手指点成功并且它正在不断更新。我做了类似下面的事情。当我移动手指时,它会绘制一条短红线,但它是短暂的,并且会立即消失。我需要画线留在那里,但我不知道怎么做,我找不到解决方案,我真的希望收到你的来信,非常感谢你。

int lastx = -1;
int lasty = -1;

void trackingfinger(....)
{
.........
if(drawing == true)
   draw(BGR_frame,Point finger)
}


void draw(BGR_frame, Point finger)
{
    int x = finger.x;
    int y = finger.y;

    if (lastx > 0 && lasty > 0 && x > 0 && y > 0)
    {
    line(BGR_frame, Point(x, y), Point(lastx, lasty), Scalar(0, 0, 255), 2);
    }

    lastx = x;
    lasty = y;
}

int main (void)
{
 while(true)
{
..... the function is called here.
}
}

1 个答案:

答案 0 :(得分:0)

如果我正确理解了所呈现的代码部分,则不能这样做。你如何决定绘图何时开始以及何时结束? line函数需要一个起点和一个终点。

要么"画"逐个像素,手指移动的所有坐标,如果你想要它跟随手指=>最后,它不会是一行

或者实施一些行动,这将告诉"现在手指指向起点"和"现在它指向结束点"