L'ultima versione di OpenCV mostra 2.4.11 febbraio 2015, che è più recente allora 3.0.0 che è in Beta. Qual'è la differenza tra loro. Dovrei usare OpenCV 2.4.11 su 3.0.0 perché ho riscontrato alcuni bug in 3.0.0. Come funzionano le loro uscite?qual è la differenza tra l'OpenCV 2.4.11 e 3.0.0
risposta
3.0.0 dovrebbe portare un sacco di nuove funzionalità ma è attualmente beta e non la versione ufficiale (può essere instabile). L'ultima versione ufficiale stabile è stata 2.4.11.
Utilizzare la 3.0.0 se ci sono funzionalità che non si recuperano in 2.4.11 o se si è avventurosi (3.0.0beta è ottimo e la versione finale dovrebbe venire presto). Se si desidera la sicurezza senza necessità aggiuntive, utilizzare 2.4.11.
Sebbene ci siano nuove funzionalità (come il rilevamento di testo, rilevatore KAZE) in OpenCV 3.0, per la maggior parte degli sviluppatori, questo confronto non riguarda le funzionalità. Si tratta della velocità . A meno che tu non sia immediatamente in produzione, ti suggerisco di utilizzare OpenCV 3.0. Inoltre, questo è tutt'altro che avventuroso.
- La differenza chiave è l'API trasparente in OpenCV 3.0. Quasi tutti i metodi OpenCV 3.0 sono accelerati da OpenCL. Quindi, tutti i metodi potrebbero essere eseguiti su GPU e questo potrebbe portare a miglioramenti dal 10 al 230%. L'unica modifica necessaria nel codice è l'utilizzo di
UMat
in cui era utilizzatoMat
. Campioni (1). Se avevi bisogno di questa prestazione in OpenCV 2.4. *, Dovevi esplicitamente invocare i metodicv::ocl::*
ocv::gpu::*
. - Se sei uno sviluppatore Java, è ancora meglio. I wrapper Java per classi/metodi che prima non erano disponibili, sono ora forniti in OpenCV 3.0 (vedere KalmanFilter ampiamente utilizzato)
- Ci sono modifiche come la ristrutturazione dei moduli interni, che da un punto di vista dello sviluppatore è minore in quanto potrebbe essere risolto di cambiando le intestazioni di OpenCV nel tuo codice.
A proposito del ciclo di rilascio, un rapido sguardo in OpenCV github pronti contro termine (2) spettacoli, tirare richiesta sono per lo più andando in branch master, che è per OpenCV 3.0. Quindi io suppongo, le correzioni di errori importanti potrebbero essere trasferite al ramo 2.4. *.
Per ulteriori informazioni sulle differenze leggere (3) e (4). Per quanto riguarda i bug che hai incontrato nella versione 3.0 beta, potrebbe essere utile, se puoi sollevarli con un campione minimo completo in esecuzione nella pagina dei problemi di OpenCV (5).
Oltre alle risposte fornite sopra, un'altra importante differenza è che il rilevamento di funzionalità SIFT/SURF è stato rimosso dal pacchetto predefinito di openCV 3.0. Dal momento che essi sono brevettati, OpenCV è spostato 'non-free' algoritmi per un pacchetto diverso:
opencv_contrib
- 1. Qual è la differenza tra = e: =
- 2. Qual è la differenza tra Verilog! e ~?
- 3. Qual è la differenza tra? : e ||
- 4. qual è la differenza tra [[], []] e [[]] * 2
- 5. Qual è la differenza tra $ e $$?
- 6. Qual è la differenza tra ("") e (null)
- 7. Qual è la differenza tra dict() e {}?
- 8. Qual è la differenza tra " " e ""?
- 9. Qual è la differenza tra {0} e ""?
- 10. Qual è la differenza tra `##` e `hashCode`?
- 11. Qual è la differenza tra {0} e +?
- 12. Qual è la differenza tra .ToString() e + ""
- 13. qual è la differenza tra:.! e: r !?
- 14. Qual è la differenza tra "è Nessuno" e "== Nessuno"
- 15. Unix: Qual è la differenza tra la fonte e l'esportazione?
- 16. Qual è la differenza tra il callback e la promessa
- 17. Qual è la differenza tra la sezione .got e .got.plt?
- 18. Qual è la differenza tra la lista() e []
- 19. Qual è la differenza tra GHC e la piattaforma Haskell?
- 20. Qual è la differenza tra sé e la finestra?
- 21. Qual è la differenza tra la cartella vim72 e vimfiles?
- 22. Qual è la differenza tra la serratura e RLock
- 23. Qual è la differenza tra la funzione() {}() e function() {}()
- 24. Qual è la differenza tra la crittografia SHA e AES?
- 25. Qual è la differenza tra la [OptionalField] e [NonSerialized]
- 26. Qual è la differenza tra Chisel e Lava e CLaSH?
- 27. Qual è la differenza tra queste funzioni
- 28. Qual è la differenza tra queste funzioni?
- 29. Qual è la differenza tra Response.Write() eResponse.Output.Write()?
- 30. Qual è la differenza tra applicationDidReceiveMemoryWarning, didReceiveMemoryWarning?
Puoi elencare alcune caratteristiche presenti in aggiunta a 3.0.0? E perché usano il versioning come 3.0.0 invece di dire 2.4.12 beta? –
3.0.0 non sarà completamente retrocompatibile con 2.4.x. Inoltre, molte delle classi sono state completamente riscritte, nonché un'enfasi sulle funzioni accelerate della GPU. Sono stati aggiunti un numero di nuovi moduli, è possibile visualizzare un elenco di modifiche [qui] (http://code.opencv.org/projects/opencv/wiki/ChangeLog). –
Hanno anche aperto una sfida per integrare tecnologie molto dirompenti: http: //code.opencv.org/projects/opencv/wiki/VisionChallenge –