Kinect netezirea mișcării mouse-ului

Lucrez la un proiect pentru a mișca cursorul mouse-ului folosind degetul care este urmărit de kinect folosind Image Depth. Am de gând să fac urmărirea, dar problema este în mișcarea mouse-ului într-un mod neted. În programul meu, atunci când mișc mouse-ul nu se mișcă într-un mod neted, dar în schimb doar sare de la pixel la pixel. Întrebarea mea este: Există o modalitate de a utiliza ceva de genul parametrii netede ai inregistrării scheletice pentru a netezi mișcarea cursorului?

0
adăugat autor Liam McInroy, sursa

2 răspunsuri

Cred că problema este că vă deplasați numai mouse-ul când apare incidentul de adâncime kinect (când primiți informații noi despre degetul persoanei).

Nu există nici o funcție în ferestre, cu toate acestea, puteți crea una. Încercați să implementați un controler P (ușor), PD (puțin mai greu) sau PID (un pic mai greu) folosind dy/dx degetului urmărit. În acest fel, chiar și între evenimentele de adâncime ale cineastului, mouse-ul se va deplasa cu o anumită viteză și ar trebui să pară să se miște mai ușor.

0
adăugat

puteți folosi câteva lucruri.

Puteți utiliza o metodă conținută în biblioteca Coding4Fun.Kinect.Wpf; numită scaleTo ()

var scaledHandRight = ElgatoElegido.Joints[JointType.HandRight].ScaleTo(1366, 768, 0.5f, 0.4f); <

și de a ajuta cu netezirea parametrilor de recunoaștere a scheletului.

  var parametri = noi TransformSmoothParameters
        {
            Smoothing = 0.3f,
            Corecție = 0.0f,
            Prediction = 0.0f,
            JitterRadius = 1.0f,
            MaxDeviationRadius = 0.5f
        };
 
        newSensor.SkeletonStream.Enable(parameters);

<

0
adăugat