Ho scritto un programma che utilizza i dati di profondità da un Kinect e rileva il blob per trovare la mano di un utente. Tuttavia, quando si usa la mano dell'utente per controllare il mouse, diventa molto a scatti, probabilmente perché le persone non sono molto brave a tenere le parti del corpo completamente immobili.Il rilevamento della mano ha come risultato un cursore a scatti
Ho provato a calcolare la posizione in base agli ultimi dieci posizionamenti, ma ciò ha provocato un ritardo temporale senza effettivamente impedire la scossa. La soluzione migliore finora che ho usato è quella di non spostare il cursore se il cambiamento dei pixel è inferiore a 10 in entrambe le direzioni (cioè, un cambiamento di 10 pixel in entrambe le direzioni provoca movimento). Questo va bene, ma è ancora piuttosto instabile, e si traduce in un'interfaccia goffa perché non hai una precisione precisa.
Come posso compensare la mancanza di fermezza nella forma umana in modo che il mouse non sia così a scatti?
Questo è molto simile a quello che ho fatto. Ho calcolato la media degli ultimi tre punti e se il punto corrente era superiore a X pixel, ho eliminato la coda degli ultimi punti e l'ho usata. Se, tuttavia, la mano non era a X pixel di distanza, ho calcolato la media degli ultimi tre punti e il punto corrente, impostare il cursore su quella media e memorizzarlo come ultimo punto. In questo modo ho gettato via i valori anomali e ho smussato il movimento fine, ma ho comunque permesso un movimento grossolano. – Malfist