私はopencvを新しくしました。指が1本上がっていれば画面上に線が引かれているかどうかを検出したい、チュートリアルを読んでいます。指を正確に追跡しています。私は以下のようなことをします。私が指を動かすと、短い赤い線が引かれますが、それは一時的であり、直後に消えます。私はそこにとどまるために描画線が必要ですが、私はそれを行う方法がわかりませんし、解決策を見つけることができません、本当にありがとう、あなたから聞くことを望んでいます。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それは動作します!あなたの考えに感謝します。私は、配列をチェックするのを忘れて少なくとも2つの要素を実行する必要があります。 – pexichdu
よろしくお願いします。答えを入力するだけでしたが、中断されました:D – Micka