2012-10-20 23 views
6

Sto facendo un progetto per l'università e sto lavorando con OpenCV (che è davvero fantastico).rilevamento movimento su opencv C++ (telecamera mobile)

Ora il mio problema è:
Ho un video (.avi) e mi hanno rilevato tutte le informazioni che voglio conoscere le macchie che compaiono all'improvviso nella gamma RGB tra il rosso e il giallo. Dopo aver realizzato una matrice che salva tutte le informazioni sui valori dei pixel, finalmente creo un'immagine nella scala di rosso che rappresenta i valori dei pixel mediani.

Il vero problema è che il video non è statico e la telecamera si muove (non troppo ma si muove).
Posso calcolare le coordinate xey del movimento della telecamera in modo da poter spostare il valore della matrice?

+0

Da dove hai imparato il rilevamento del movimento? per favore aiuto –

risposta

4

A chi importa del tuo inglese? Finché non comprendiamo il tuo problema :) Quello che potresti davvero fare è dare un colpo al rilevamento del movimento KLT implementato in OpenCV. Ecco un link a KLT noto anche come optical flow Se riesci a filtrare i vettori di movimento limitati ai BLOB puoi sicuramente ottenere l'oggetto che vuoi monitorare. Ancora meglio dare a KLT le coordinate iniziali/l'area da tracciare. Hai controllato la libreria BLOB di OpenCV per ottenere i BLOB? Ecco lo link

+0

grazie! si conosco il cvblob ed è implementato nel mio progetto, io calcolo l'area del blob e il coord del centroide e assegno un'etichetta per ogni blob, come leggo prima che la soluzione migliore sia il flusso ottico, spero che sia funzionerà! il movimento della fotocamera è molto lento e se riesco a rilevare il coord con il flusso ottico ho finito questo progetto! :) grazie! – Lorenzo

+0

Benvenuto, fammi sapere se l'hai fatto! –

+0

Sì, l'ho fatto! l'ho fatto con lucas kanade, ho calcolato la differenza tra una serie di punti in ogni fotogramma e il risultato è abbastanza buono! Grazie! – Lorenzo

Problemi correlati