Ho 2 sequenze:
- Uno è un videoclip con l'immagine scattata dalla fotocamera di un drone
- L'altro è un file con un elenco di dati cronologici dai sensori
Esempio:
time 0: speed_x=1, latitude=0.001, longitude=0.2, altitude=40
time 112: speed_x=3, latitude=0.0021, longitude=0.221, altitude=30
time 232: speed_x=3, latitude=0.0021, longitude=0.221, altitude=35
time 425: speed_x=3.1, latitude=0.0024, longitude=0.222, altitude=40
…
* il tempo arriva in millisecondi
Ho creato un'applicazione che riproduce il video (questa è la parte facile) ma Voglio visualizzare le informazioni sul volo in una data posizione del video.
Il problema è che, per visualizzare i dati del sensore in una data posizione del video (in un dato momento), dovrei attraversare l'elenco dei dati del sensore per trovare i dati del sensore che è più vicino a quella posizione
Ad esempio:
Se il video mostra il frame a 150 millisecondi e nell'elenco dei dati del sensore ho questi elementi nell'elenco dei dati del sensore:
time 0:
time 90: …
time 120: …
time 200: …
time 230: …
Quindi, dovrei scegliere di mostrare i dati del sensore sull'oggetto con time=120
, perché è quello che è più vicino a 150 ms.
Posso fare un algoritmo di ricerca per effettuare la ricerca, ma sarò davvero inefficiente a percorrere l'intera lista di dati dai sensori calcolando le distanze e scegliendo quella con la distanza minima.
Quindi, ho pensato di creare una sorta di dizionario / tabella hash che, data una posizione nel video, avrebbe recuperato i dati del sensore appropriati.
Tuttavia, non ho mai creato una struttura dati di ricerca suck. Non so nemmeno che sia fattibile! Ho usato dizionari e tabelle hash che hanno dato una chiave discreta, si ottiene un risultato. Ma nel mio caso, ho un insieme di valori virtualmente infinito che si tradurrà nello stesso articolo.
Puoi, per favore, dirmi come risolvere questo problema?
Grazie!