Creazione filtri per immagini in java

FAQ di Java

Creazione filtri per immagini in java

Messaggioda pixel » mar gen 07, 2014 6:04 pm

Salve a tutti,
dovrei realizzare un'applicazione che permetta di caricare un'immagine da file ed applicare su questa dei filtri, non so però da dove cominciare, attualmente la mia applicazione swing fa visualizzare il filechooser per la scelta delle foto, apre un'immagine in un JInternalFrame, il passo che mi manca è creare i primi filtri, ad esempio anche la scala di grigio, e modificare l'immagine contenuta nel frame interno, non vi nego che brancolo nel buio.
Grazie!
pixel
 
Messaggi: 6
Iscritto il: mar gen 07, 2014 5:58 pm

Re: Creazione filtri per immagini in java

Messaggioda alesslud » mer gen 08, 2014 9:50 am

Ciao Pixel,

su questo argomento trovi tantissimi post in rete. Basta andare su google e digitare applicare filtri immagini java.

https://www.google.it/#q=applicare+filtri+immagini+java
alesslud
Site Admin
 
Messaggi: 779
Iscritto il: mer nov 08, 2006 8:09 am

Re: Creazione filtri per immagini in java

Messaggioda pixel » mer gen 08, 2014 11:28 am

Grazie Alesslud per aver risposto,
ho già provato a cercare informazioni in rete, ma dopo un pò mi sono persa, vorrei fare un buon lavoro e capire da dove cominciare, ad esempio non so se esistono classi che già fanno trasformazioni di immagini, ho provato a consultare anche l'api ma anche qui "era come cercare un ago in un pagliaio", quindi vorrei una dritta su quali classi, interfacce usare per gestire il tutto.
Grazie ancora.
pixel
 
Messaggi: 6
Iscritto il: mar gen 07, 2014 5:58 pm

Re: Creazione filtri per immagini in java

Messaggioda alesslud » mer gen 08, 2014 3:05 pm

Ma così il programma te lo faccio io. Personalmente programmo molto con Swing e con Java Web Start ma non mi è mai capitato di applicare filtri ad immagini. Possiamo vedere di fare la cosa insieme ma ho bisogno di maggiori informazioni. Per esempio hai letto questa piccola guida?
http://www.mokabyte.it/1997/04/colors.htm
Non riesco a capire cosa ti serve......
alesslud
Site Admin
 
Messaggi: 779
Iscritto il: mer nov 08, 2006 8:09 am

Re: Creazione filtri per immagini in java

Messaggioda alesslud » mer gen 08, 2014 3:39 pm

Ho creato un esempio che applica un filtro ad un'immagine. L'esempio è utilizzabile da Eclipse. Basta fare importa progetto e poi cambiare la virtual machine che hai installata tu sul tuo pc.

download/resource/FiltroImmagine.zip
alesslud
Site Admin
 
Messaggi: 779
Iscritto il: mer nov 08, 2006 8:09 am

Re: Creazione filtri per immagini in java

Messaggioda pixel » mer gen 08, 2014 5:53 pm

Grazie per la disponibilità Alesslud,
non vorrei far fare tutto il lavoro a te....ci mancherebbe, già sei fin troppo gentile.
Comunque ho scaricato il file, in realtà il primo file,la classe NBinomiale, mi genera un'immagine uguale all'originale mentre la seconda classe, mi genera un'immagine con colori invertiti e non in bianco e nero.
Magari ti spiego meglio il progetto, devo fare un'applicazione MVC con swing che deve prende un immagine da file, la carica magari all'interno di JInternlFrame e poi bisogna applicare su questa dei filtri,come bianco/nero, scala di grigi,contrasto etc.
Sono al punto di aver creato la struttura del progetto, ho fatto le prime azioni per caricare l'immagine dovrei a questo punto creare i filtri, in rete ho trovato questo link http://www.jhlabs.com/ip/filters/index.html dove sono implementati vari filtri ma non riesco a capire come usarli e quindi renderli usabili all'interno della mia applicazione, quindi volevo capire un pò meglio il tutto, visto che poi dovrò spiegare quanto ho fatto.
Questo è quanto.... non so se sono stata chiara.
Grazie per la disponibilità!
pixel
 
Messaggi: 6
Iscritto il: mar gen 07, 2014 5:58 pm

Re: Creazione filtri per immagini in java

Messaggioda alesslud » gio gen 09, 2014 10:26 am

Ho scaricato il progetto che tu mi hai indicato e l'ho leggermente modificato per adattarlo alle mie esigenze.

http://www.aquilasiti.com/librerie/filtri.zip

Il link contiene sia il vecchio progetto opportunamente modificato che il progetto da te indicato. Un volta che avrai scompattato il file vedrai che dentro ci sono due cartelle una chiamata FiltroImmagine e l'altra chiamata FilterImageJhlab.
Cancella il precedente progetto FiltroImmagine da Eclipse e importa il nuovo ed importa come progetto anche FilterImageJhlab. Dalle proprietà di FiltroImmagine includi il progetto FilterImageJhlab nel progetto FiltroImmagine.

Dopodiché puoi eseguire il test della classe TestDiffusionFilter.java che in realtà ha un nome errato in quanto trasforma la foto in bianco e nero.
La classe

public class GrayscaleFilter extends PointFilter {

public GrayscaleFilter() {
canFilterIndexColorModel = true;
}

public int filterRGB(int x, int y, int rgb) {
int a = rgb & 0xff000000;
int r = (rgb >> 16) & 0xff;
int g = (rgb >> 8) & 0xff;
int b = rgb & 0xff;
// rgb = (r + g + b) / 3; // simple average
rgb = (r * 77 + g * 151 + b * 28) >> 8; // NTSC luma
return a | (rgb << 16) | (rgb << 8) | rgb;
}

public String toString() {
return "Colors/Grayscale";
}

public BufferedImage filter( BufferedImage src, BufferedImage dst ) {
return super.filter(src, dst);
}

}

rispetto all'originale la classe GrayscaleFilter ha un metodo in più cioè public BufferedImage filter( BufferedImage src, BufferedImage dst ) che richiamo dalla classe di test TestDiffusionFilter del progetto FiltroImmagine nel proprio metodo main. In pratica il metodo filter da me creato non fa altro che richiamare il metodo filter(BufferedImage src, BufferedImage dst) della classe PointFilter che a sua volta chiama il metodo filterRGB(int x, int y, int rgb) della classe GrayscaleFilter.
Puoi fare questa cosa su tutte le classi del progetto FilterImageJhlab e quindi ottenere tutti gli effetti desiderati. Naturalmente ricordati sempre di impostare la virtual machine installata sul tuo computer.
Questo è quanto.

ciao
alesslud
Site Admin
 
Messaggi: 779
Iscritto il: mer nov 08, 2006 8:09 am


Torna a Java

Chi c’è in linea

Visitano il forum: Nessuno e 0 ospiti

cron