Sto cercando una libreria C++ per l'elaborazione delle immagini. Ho bisogno che la libreria tocchi una foto PPM (foto a colori). Dovrei scrivere il mio codice? Che cosa ne pensate?Librerie di elaborazione immagini C++
risposta
È possibile utilizzare la libreria Boost GIL. È estremamente potente e versatile e può effettivamente soddisfare tutte le tue esigenze (beh, sì, è boost :).
Magick++ potrebbe aiutare. È la versione della libreria di ImageMagick.
Molto buona biblioteca è GD2
Questa libreria ha lingue più associazioni, tra cui C (che è compatibile con C++, ovviamente). È facile creare GD come libreria statica o dinamica con qualsiasi compilatore C++, inclusi GCC e Visual C++, anche i binari predefiniti sono disponibili su Internet. A differenza della libreria di immagini Boost, consente di caricare/salvare immagini da/su memoria e non solo su disco fisso.
Tutte le opzioni di cui sopra dovrebbero essere in grado di fare ciò che è necessario.
Desidero aggiungere OpenCV all'elenco. Si tratta di una veloce libreria di computer vision multipiattaforma con un ampio supporto per il caricamento, il salvataggio e l'elaborazione delle immagini. È scritto in C, ma ha una solida interfaccia C++, che ho usato in passato.
Detto questo: Reading/writing PPMs is straight-forward, quindi se tutto ciò di cui hai bisogno è leggere e soglia, dovresti assolutamente prendere in considerazione la possibilità di farlo tu stesso. Si passerebbe alla lettura dei byte PPM in memoria, al greyscaling calcolando la media dei canali di colore RGB (si noti che la media dei canali RGB è uno, molto semplice, metodo a scala di grigi, ci sono more), quindi la soglia e la scrittura.
Simd Library The è una libreria di elaborazione di immagini open source gratuita, progettata per programmatori C e C++. Fornisce molti utili algoritmi ad alte prestazioni per l'elaborazione di immagini quali: conversione del formato pixel, ridimensionamento e filtraggio dell'immagine, estrazione di informazioni statistiche da immagini, rilevamento del movimento, rilevamento di oggetti (classificatori HAAR e LBP) e classificazione, rete neurale.
Gli algoritmi sono ottimizzati con l'utilizzo di diverse estensioni della CPU SIMD. In particolare la libreria supporta le seguenti estensioni della CPU: SSE, SSE2, SSE3, SSSE3, SSE4.1, SSE4.2, AVX, AVX2 e AVX-512 per x86/x64, VMX (Altivec) e VSX (Power7) per PowerPC, NEON per ARM.
La libreria Simd ha API C e contiene anche classi e funzioni C++ utili per facilitare l'accesso all'API C. La libreria supporta collegamenti dinamici e statici, compilatori Windows e Linux, MSVS, G ++ e Clang a 32 bit e 64 bit, progetti MSVS e sistemi di generazione CMake.
P.S. Partecipo allo sviluppo di questo progetto.
Sembra una bella biblioteca! Sei anche l'autore?Se è così, dovresti probabilmente menzionarlo nella risposta (vedi [disclosure dell'affiliazione] (http://stackoverflow.com/help/behavior)) –
Non conoscevo questa regola. – ErmIg
La libreria di Simd ha qualche funzione che combinerebbe due immagini verticalmente in modo tale che (500x500, 500x500) diventi (500x1000)? Non ho ancora imparato il C++ e sto cercando di trovare una libreria in grado di farlo (da utilizzare in Android). Potete aiutare – rupinderjeet
The CImg Library è una scelta popolare anche. È molto semplice da utilizzare, leggero e ha già implementato un numero elevato di operatori di elaborazione delle immagini di base e avanzati.
- 1. Librerie di elaborazione immagini
- 2. Librerie di elaborazione immagini cross-platform C/C++ rapide
- 3. Elaborazione delle immagini su Android: quali librerie posso usare?
- 4. Elaborazione rapida di immagini
- 5. Librerie di elaborazione parallela Python
- 6. Librerie di immagini .NET
- 7. artefatti di elaborazione immagini parallele
- 8. libreria di elaborazione immagini più veloce?
- 9. opzioni di elaborazione immagini/video
- 10. Libreria di elaborazione immagini Haskell?
- 11. Libreria di elaborazione immagini Android
- 12. Elaborazione delle immagini lato client
- 13. C++ tutorial elaborazione di immagini withuot libreria di 3a parte
- 14. Librerie C++ per la segmentazione delle immagini
- 15. Elaborazione immagini OpenCV - C++ vs C vs Python
- 16. Linea Semplificazione elaborazione delle immagini
- 17. Elaborazione per Android, uso di librerie
- 18. JVM (imbarazzante) librerie/strumenti di elaborazione parallela
- 19. Migliorare la velocità di elaborazione delle immagini
- 20. Debug del codice di elaborazione immagini
- 21. Elaborazione delle immagini della telecamera
- 22. Quali sono attualmente le migliori librerie di elaborazione immagini per Java?
- 23. Libreria di elaborazione delle immagini per Android?
- 24. Sviluppo basato su test per librerie di elaborazione del segnale
- 25. elaborazione delle stringhe in c
- 26. Elaborazione delle immagini con ridimensionamento al volo
- 27. Elaborazione delle immagini su CUDA o OpenCV?
- 28. Elaborazione delle immagini e Computer Vision
- 29. Elaborazione delle immagini Android OpenGL - senza SurfaceView
- 30. Elaborazione delle immagini - Implementazione del filtro Sobel
Credo che boost GIL consenta anche di scrivere/leggere nella/dalla memoria. – jiggunjer