Uso questo come funzione del mio algoritmo di tracciamento.Tracciamento OpenCV mediante flusso ottico
//1. detect the features
cv::goodFeaturesToTrack(gray_prev, // the image
features, // the output detected features
max_count, // the maximum number of features
qlevel, // quality level
minDist); // min distance between two features
// 2. track features
cv::calcOpticalFlowPyrLK(
gray_prev, gray, // 2 consecutive images
points_prev, // input point positions in first im
points_cur, // output point positions in the 2nd
status, // tracking success
err); // tracking error
cv::calcOpticalFlowPyrLK
prende vettore di punti dall'immagine precedente come input e restituisce punti appropriati sulla immagine successiva. Supponiamo di avere pixel casuali (x, y) nell'immagine precedente, come posso calcolare la posizione di questo pixel sull'immagine successiva utilizzando la funzione di flusso ottico OpenCV?
Si noti che si esegue solo il rilevamento delle funzioni per una volta. Ho testato questo codice. Ho trovato solo le caratteristiche rilevate sulla prima immagine che possono essere monitorate. Se tutte queste funzionalità vanno oltre l'immagine, non ci sarebbe alcuna funzione da tracciare. Ho bisogno di usare il flusso ottico per la costruzione 3D. Allora come possiamo rintracciare continuamente le vecchie funzionalità e nel frattempo aggiungere nuove funzionalità di immagine? Grazie. – Shiyu
Sì, si rilevano solo le funzioni con 'goodFeaturesToTrack', quindi il metodo del flusso ottico semplicemente le tiene traccia. Se si desidera mantenere un certo numero di funzionalità in ciascun fotogramma, è necessario rilevare il numero di funzioni che sono state tracciate correttamente nel fotogramma corrente e quindi provare a rilevare quelle aggiuntive da tracciare sul fotogramma successivo. Un'alternativa sarebbe quella di rilevare le caratteristiche in ogni fotogramma e quindi calcolare i descrittori e abbinare tali descrittori utilizzando le funzioni su [questa pagina] (http://opencv.itseez.com/modules/features2d/doc/features2d.html). – Chris
Se hai bisogno di maggiori dettagli, sarebbe meglio fare una nuova domanda. – Chris