Rozpoznanie konkretnego ruchu na podstawie koordynatów śledzonego przedmiotu

Rozpoznanie konkretnego ruchu na podstawie koordynatów śledzonego przedmiotu
D6
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 401
0

Bawię się z biblioteką Aforge z C# w visual studio. Aplikacja pobiera mi koordynaty jako x,y z śledzonego przedmiotu. Jak można z nich rozpoznać konkretny ruch jaki się zrobiło?

KR
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 2520
0

rozdziel to na kilka etapów:

  • wykryj ruch obiektu między dwoma klatkami (dx, dy) lub wartości bezwględne w każdej klatce (x, y)
  • napisz algorytm, który na podstawie zestawu współrzędnych (x, y) lub (dx, dy) wykryje typ ruchu

w drugiej części najłatwiej przeanalizować stałą liczbę współrzędnych N (np. 10) i później bawić się w coś w stylu:

  • jeśli w pierwszej połowie próbek współrzędna x zmienia się znacząco i zawsze w lewo, a współrzędna y nieznacząco
  • w drugiej połowie współrzędna y zmienia się znacząco, a x nieznacząco
    to <wykonaj akcję>

o tym można by napisać pracę dyplomową i możliwości rozpoznawania kształtów masz bardzo dużo

D6
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 401
0

o jaki typ ruchu chodzi?

  • napisz algorytm, który na podstawie zestawu współrzędnych (x, y) lub (dx, dy) wykryje typ ruchu

możesz podać jakieś strony, artykuły na ten temat?

flowCRANE
  • Rejestracja: dni
  • Ostatnio: dni
  • Lokalizacja: Tuchów
  • Postów: 12317
0

@dawid653 - chcesz kurs opisujący dodawanie i odejmowanie..?

Tyle wystarczy, aby rozpoznać typ ruchu - sumować współrzędne z kolejnych klatek i sprawdzać w której ćwiartce układu współrzędnych znajduje się punkt o wyliczonych koordynatach, gdzie za punkt [0,0] przyjmujemy współrzędne z poprzedniej klatki;

Jeśli potrzebujesz sprawdzić jedynie kierunek w poziomie i pionie, to sprawdzaj czy nowy punkt znajduje się w układzie współrzędnych po lewej/prawej stronie lub wyżej/niżej w stosunku do punktu poprzedniego.

D6
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 401
0

chodzi mi o bardziej skomplikowane gesty niż tylko góra, dół np. koło czy litera "Z" albo linia ukośna "/", "".

flowCRANE
  • Rejestracja: dni
  • Ostatnio: dni
  • Lokalizacja: Tuchów
  • Postów: 12317
0

Nie szkodzi, rozpoznawanie kierunku pomiędzy dwoma punktami przyda Ci się; Dzięki temu możesz sobie obliczyć kierunek ruchu pomiędzy np. 20 klatkami i zestaw tych kierunków porównać z wzorcami i w ten sposób rozpoznać konkretny gest.

D6
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 401
0

rozumiem jak wyznaczyć kierunek z punktów osi XY. pobieram punkty i obliczamy odległość między punktami w pionie i poziomie potem znając dx i dy obliczyć kąt zawarty między odcinkiem a osią OX. Jest także wprowadzona tolerancja konta. każdy wyliczony kierunek oznaczamy liczbą od 1 do 8.
ale jak aplikacja zbiera mi punkty licząc od lewego górnego rogu punkt (0,0) a dolny prawy róg to (300,300) to jak mam wyznaczyć kierunek w którym się poruszał wskaźnik?

flowCRANE
  • Rejestracja: dni
  • Ostatnio: dni
  • Lokalizacja: Tuchów
  • Postów: 12317
0

ale jak aplikacja zbiera mi punkty licząc od lewego górnego rogu punkt (0,0) a dolny prawy róg to (300,300) to jak mam wyznaczyć kierunek w którym się poruszał wskaźnik?

Tak masz to zrobić, jak opisałeś:

pobieram punkty i obliczamy odległość między punktami w pionie i poziomie potem znając dx i dy obliczyć kąt zawarty między odcinkiem a osią OX. Jest także wprowadzona tolerancja konta. każdy wyliczony kierunek oznaczamy liczbą od 1 do 8.

Nie rozumiem co chcesz jeszcze więcej wiedzieć.

D6
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 401
0

a jak obliczyć kąt zawarty między odcinkiem a osią OX? jaki jest wzór?

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.