2012-05-05 15 views
23

Un amico che lavora nella professione medica mi ha chiesto di provare a scrivere una piccola applicazione per Android che potrebbe scattare una foto, analizzarla in termini di colori e dimensioni in modo da sapere come si è evoluta dall'ultima istantanea e fare raccomandazioni basate su questa evoluzione.Libreria di elaborazione delle immagini per Android?

Ho appena iniziato con Android e mi chiedevo se qualcuno fosse a conoscenza di una buona libreria che potesse fare ciò e risparmiare tempo di sviluppo.

risposta

17

OpenCV (per Open Computer Vision) è una libreria di elaborazione di immagini C++ ampiamente utilizzata dai ricercatori per l'elaborazione delle immagini, la visione artificiale, la robotica ... (almeno per quelli che non usano MATLAB). Supporta ufficialmente Android, ed è attivamente sviluppato.

Inoltre, ha un sacco di funzioni avanzate che è possibile utilizzare in seguito, se necessario.

+1

O c'è una carenza di biblioteche per analizzare le immagini, o googling per "photo smartphone libreria di analisi" semplicemente non è giusto. Devo chiedere agli esperti quali sono le opzioni per scrivere un'applicazione, quali sono i leader sul campo, quanto costa la loro biblioteca, ecc. – Gulbahar

+0

Apparentemente, le parole di ricerca giuste sono "libreria di elaborazione delle immagini". Immagino che di solito siano scritti in C/C++, quindi sono disponibili sia per Android che per iPhone. – Gulbahar

+0

Per analizzare un'immagine, applicherete alcuni algoritmi di elaborazione del segnale o dell'immagine ad esso. Quindi, sì, l'elemento di ricerca è "libreria di elaborazione delle immagini". OpenCV include anche l'ottimizzazione NEON, che può essere utile per dispositivi basati su ARM (ad esempio la maggior parte dei dispositivi Android). – sansuiso

12

Ho trovato JavaCV migliore per Android poiché esporta API Java. Supporta anche altre librerie di elaborazione delle immagini.

+0

Grazie. Controllerò OpenCV e JavaCV. – Gulbahar

+0

Perché il downvote? –

+0

Non ho fatto niente: -/ – Gulbahar

5

Utilizzare JavaCV, è un wrapper per OpenCV. JavaCV Contiene tutte le funzioni che contiene OpenCV. Sebbene JavaCV non abbia una ricca documentazione, è possibile utilizzare la documentazione di OpenCV per trovare le funzioni che è possibile utilizzare per il proprio progetto. JavaCV ha la stessa firma del metodo (non per tutti) come OpenCV.

+0

Sembra che questa libreria sia abbastanza grande (6,4 MB per Android) e ha la licenza "GNU GPL v2". È corretto modificare il suo codice in modo che io possa rimuovere la maggior parte di esso? Non sta facendo più funzioni, ma piuttosto rimuovendole. Ho solo bisogno di un set di funzionalità molto di base (ad esempio rotazione, ridimensionamento, ritaglio, ma non filtraggio e altre cose simili ...). Inoltre, questa libreria esegue la decodifica al suo interno o sul lato Java (usando BitmapFactory)? Spero che tutto l'utilizzo della memoria sia sul "mondo JNI", o potrebbe causare OOM ... –

Problemi correlati