Quelques effets esthétiques sur les images
Projet gus05 de développement Java :: Chantiers :: Chantiers techniques :: Traitement des données :: Traitements sur les images
Page 1 sur 1
Quelques effets esthétiques sur les images
Voici quelques entités de traitement pour obtenir des effets esthétiques sur les images. Il ne s'agit que de quelques exemples parmi les nombreuses possibilités qu'offre l'API JAI.
Image originale :
gus.image.transform.rendered.kernel.convolve
Pour rendre une image floue. En augmentant la valeur de SIZE, l'image devient encore plus floue.
gus.image.transform.rendered.kernel.errordiffusion
L'image devient irisée.
gus.image.transform.rendered.kernel.gradientmagnitude
On applique ici un traitement de détection des bords puis l'inversion des couleurs
Image originale :
gus.image.transform.rendered.kernel.convolve
Pour rendre une image floue. En augmentant la valeur de SIZE, l'image devient encore plus floue.
- Code:
package gus05.entity.gus.image.transform.rendered.kernel.convolve;
import java.awt.image.RenderedImage;
import javax.media.jai.JAI;
import javax.media.jai.KernelJAI;
import gus05.framework.core.Entity;
import gus05.framework.features.Transform;
public class Convolve implements Entity, Transform {
public String getName() {return "gus.image.transform.rendered.kernel.convolve";}
public String getCreationDate() {return "2011.07.07";}
public static final int SIZE = 10;
public Object transform(Object obj) throws Exception
{
RenderedImage image = (RenderedImage) obj;
float[] kernelMatrix = new float[SIZE*SIZE];
for(int k=0;k<kernelMatrix.length;k++)
kernelMatrix[k] = 1.0f/(SIZE*SIZE);
KernelJAI kernel = new KernelJAI(SIZE,SIZE,kernelMatrix);
return JAI.create("convolve",image,kernel);
}
}
gus.image.transform.rendered.kernel.errordiffusion
L'image devient irisée.
- Code:
package gus05.entity.gus.image.transform.rendered.kernel.errordiffusion;
import java.awt.image.RenderedImage;
import java.awt.image.renderable.ParameterBlock;
import javax.media.jai.ColorCube;
import javax.media.jai.JAI;
import javax.media.jai.KernelJAI;
import gus05.framework.core.Entity;
import gus05.framework.features.Transform;
public class ErrorDiffusion implements Entity, Transform {
public String getName() {return "gus.image.transform.rendered.kernel.errordiffusion";}
public String getCreationDate() {return "2011.07.07";}
public Object transform(Object obj) throws Exception
{
RenderedImage image = (RenderedImage) obj;
ParameterBlock pb = new ParameterBlock();
pb.addSource(image);
pb.add(ColorCube.BYTE_855);
pb.add(KernelJAI.ERROR_FILTER_FLOYD_STEINBERG);
return JAI.create("errordiffusion", pb, null);
}
}
gus.image.transform.rendered.kernel.gradientmagnitude
On applique ici un traitement de détection des bords puis l'inversion des couleurs
- Code:
package gus05.entity.gus.image.transform.rendered.kernel.gradientmagnitude;
import java.awt.image.RenderedImage;
import java.awt.image.renderable.ParameterBlock;
import javax.media.jai.JAI;
import javax.media.jai.KernelJAI;
import gus05.framework.core.Entity;
import gus05.framework.features.Transform;
public class GradientMagnitude implements Entity, Transform {
public String getName() {return "gus.image.transform.rendered.kernel.gradientmagnitude";}
public String getCreationDate() {return "2011.07.08";}
public Object transform(Object obj) throws Exception
{
RenderedImage image = (RenderedImage) obj;
float data_h[] = new float[] {
1.0F, 0.0F, -1.0F,
1.414F, 0.0F, -1.414F,
1.0F, 0.0F, -1.0F};
float data_v[] = new float[] {
-1.0F, -1.414F, -1.0F,
0.0F, 0.0F, 0.0F,
1.0F, 1.414F, 1.0F};
KernelJAI kern_h = new KernelJAI(3,3,data_h);
KernelJAI kern_v = new KernelJAI(3,3,data_v);
image = JAI.create("gradientmagnitude",image,kern_h, kern_v);
ParameterBlock pb = new ParameterBlock();
pb.addSource(image);
return JAI.create("invert",pb);
}
}
Projet gus05 de développement Java :: Chantiers :: Chantiers techniques :: Traitement des données :: Traitements sur les images
Page 1 sur 1
Permission de ce forum:
Vous ne pouvez pas répondre aux sujets dans ce forum
|
|
Mar 16 Sep - 12:01 par Gus
» Présentation du jeu Vindinium
Jeu 20 Fév - 15:32 par Gus
» Rechercher la cible la plus proche avec le "Breadth First Search"
Jeu 20 Fév - 13:06 par Gus
» Impression d'écran avec sélection de zone
Jeu 20 Fév - 12:12 par Gus
» Envoyer un mail par un compte Gmail
Jeu 25 Avr - 14:04 par Gus
» Streaming : comment télécharger les vidéos
Lun 4 Fév - 19:59 par Gus
» Synology : installer ipkg
Mar 22 Jan - 21:22 par Gus
» Trouver le type de lecteur avec JNA
Mer 9 Jan - 23:11 par Gus
» Adresse ip publique et adresse ip privée, Internet box et UPnP
Mer 9 Jan - 21:02 par Gus
» Accéder au numéro de série du lecteur par un script vb
Mer 9 Jan - 19:31 par Gus