PDA

View Full Version : [Java] OpenCV e operazioni logiche


cerza
14-04-2014, 19:04
Salve a tutti,
dovrei fare un'applicazione java 2D che permetta di caricare immagini ed applicare vari filtri, la parte semplice, quella dei filtri scala di grigio ed altri li ho creati senza usare alcuna libreria per la gestione delle immagini, proprio come mi suggerivano in questo forum. Solo che adesso dovrei fare operazioni logiche tra due immagini, ad esempio l'AND, non riesco a farlo con la sola API nativa per cui avevo dato un'occhiata alla libreria JAI perchè, sempre in questo forum, mi dicevano essere più semplice da gestire rispetto ad OpenCV. Mi sono accorta però che tale libreria è ormai obsoleta e quindi suggerivano di passare ad OpenCV che prevede comunque la possibilità di fare operazioni logiche.
Voi che ne pensate? sono sulla giusta strada? devo quindi installare OpenCV? devo prestare attenzione a situazioni particolari per l'installazione? Oppure le operazioni logiche tra immagini posso farle anche senza usare alcuna libreria?
Grazie per la disponibilità

*andre*
15-04-2014, 16:30
Ciao

A lavoro abbiamo provato ad usare OpenCV con Java su Android... che dire.. non è semplicissimo da installare, ma per quanto riguardo l'uso, in Java hanno implementato un API simile a quella di C++, quindi tutti i tutorial che trovi in C/C++ ti possono servire :) (basta adattare un po la sintassi).

Qui http://opencv.org/ trovi i download che dovrebbero includere i bindings per Java. In più, su GitHub hanno un HelloWorld in Java. Ti può servire come punto di partenza.

Good luck

cerza
15-04-2014, 16:45
Pensi che tale libreria possa essere una soluzione al mio problema?(and tra immagini) oppure esiste una qualche soluzione alternativa che mi permetta di fare ciò senza alcuna libreria?
Grazie!

*andre*
16-04-2014, 10:52
Devi fare solo quell'operazione?
Di che filtro si tratta?

cerza
16-04-2014, 11:42
Si dovrei fare un operazioni logiche tra immagini, quindi AND ed OR, oppure aprire un'immagine ed inserirne un'altra sopra, cliccando ad esempio su di un bottone.
Non so se questo può essere fatto anche senza alcuna libreria.
Grazie

*andre*
16-04-2014, 12:30
Se la tua immagine in Java è rappresentata, ad esempio, da BufferedImage, hai accesso ai singoli pixel, quindi puoi implementare tutte le funzioni matematiche che vuoi.

Questa è l'API ufficiale: http://docs.oracle.com/javase/8/docs/api/java/awt/image/BufferedImage.html

Questo è un tutorial ufficiale di Oracle per Java2D: http://docs.oracle.com/javase/tutorial/2d/

cerza
16-04-2014, 13:16
Grazie per la disponibilità
Il primo link non lo avevo visto, mentre il secondo mi era noto ma non c'è la soluzione al mio problema perchè gli esempi sono sulla gestione base dell'oggetto image.
Comunque proverò a cercare tra i vari metodi messi a disposizione di bufferedImage.
Grazie ancora

cerza
16-04-2014, 16:41
Scusami *andre* ma nel primo link ci sono solo le descrizioni dei metodi senza alcun esempio, dove trovo qualche esempio che mi faccia capire come usare i vari metodi?
Grazie

*andre*
17-04-2014, 21:48
Il primo link è la documentazione della classe BufferedImage che puoi usare. Ti dice tutti i metodi cosa fanno, tra le altre cose.

Esempi con tutti i metodi non credo che esistano.

Comunque get y set RGB sono quelli che fanno al caso tuo se vuoi manipolare l'immagine a mano per applicare i filtri.