我是新手,我想檢測一個手指是否會在屏幕上繪製一條線,我閱讀了一些教程,我正在跟蹤手指點並且正在更新不斷。我做下面的事情。當我移動手指時,它確實畫了一條短紅線,但它是短暫的,並在之後立即消失。我需要畫線留在那裏,但我不知道如何去做,我找不到解決方案,我真的很希望聽到你的消息,非常感謝你。通過在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.
}
}
推回新點到一些動態數組(例如一個std :: vector),然後遍歷整個數組並繪製從點到點的線。 – Micka
@Micka它的作品!感謝您的想法。我忘了檢查數組,必須至少有兩個元素才能運行。 – pexichdu
很高興聽到。只是輸入了一個答案,但被打斷了:D – Micka