Ich versuche, meine Hand basierend auf dem Bereich mit dem Media Flow Tracker zu verfolgen, aber die Begrenzungsbox wird nach einiger Zeit immer größer. Es funktioniert in den ersten 10 Sekunden oder so richtig.
Hier ist ein Codeausschnitt:
%Vor% Ich würde den Aufruf von dilate
aus der folgenden Zeile entfernen:
filtered = depth.stretch(0, 180).binarize().dilate(1)
Aus der SimpleCV Dokumentation :
erweitern (Iterationen = 1) Wenden Sie eine morphologische Dilatation an. Eine Dilatation hat den Effekt, Blobs zu glätten, während die Menge an Rauschblobs verstärkt wird. Diese Implementierung verwendet den Standard-Quadrat-Kernel openCV 3X3 Erosion ist effektiv ein lokaler Maxima-Detektor, der Kernel bewegt sich über das Bild und nimmt den Maxima-Wert innerhalb des Kernels an.
Die Variable filtered
wird für jede Schleifeniteration mit filtered.findBlobs()
verwendet. Die Intensität und Dichte dieser Blobs werden verwendet, um die Abmessungen der Begrenzungsbox zu bestimmen.
Sie rufen die Funktion stretch
zusammen mit dilate auf. Im Laufe der Zeit führt der Aufruf von dilate
dazu, dass Rauschen als Teil der Hand erkannt wird, sodass die Bounding Box entsprechend erhöht wird.