begin process at 2010 02 10 00:31:01
  Trouver un code source :
 
dans
 
Accueil > Forum > 

JAVA / J2EE / J2ME

 > 

Multimédia

 > 

Image et vidéo

 > 

SVP (correction dun petit code : filtrage noirt/blanc)


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

SVP (correction dun petit code : filtrage noirt/blanc)

jeudi 14 juin 2007 à 00:17:57 | SVP (correction dun petit code : filtrage noirt/blanc)

najah01_3

salam ,

dans le code suivant , j ai fait detection de contour horizentalement . j ai compilé , mais mon applet affiche une image blanche .
merci

public int filterRGB(int x, int y, int rgb)  {
        if (y == 0) {
            return rgb ;
        }
       
        int yprevious = y - 1 ;
        if (yprevious < 0 ) {
            yprevious = width - 1;
        }
       
        int previousRGB = data[width*x + yprevious] ;
       
        int r1 = (rgb >> 16) & 0xFF;
        int g1=  (rgb >> 8)  & 0xFF;
        int b1=  rgb  & 0xFF;
       
        int r2 = (previousRGB >> 16) & 0xFF;
        int g2 = (previousRGB >> 8) & 0xFF ;
        int b2 =  previousRGB & 0xFF;
       
        int r3 = r1 - r2 ;
        int g3 = g1 - g2 ;
        int b3 = b1 - b2 ;
       
        return   ((int) r3 | g3 | b3);
    }
jeudi 14 juin 2007 à 10:28:13 | Re : SVP (correction dun petit code : filtrage noirt/blanc)

Twinuts

Membre Club Administrateur CodeS-SourceS
Salut,

pour moi ce qui ne colle pas c'est le calcul de la résultante de r3 ou g3 ou b3.
Car il faudrait masquer r3, g3 et b3 avec leurs masque respectif avant et surtout les redécaler pour les replacer à leurs postition dans le mot de 32 bits final.

De plus attention si ton image contient de la transparence ici tu ne la replace pas :

int a1 = (rgb >> 24) & 0xFF;
[...]
return (a1 << 24)  + (r3 << 16) + (g3 << 8) + b3;

(tu peux zapper le décalage à droite puis à gauche de 24 bits la composante alpha en faisant juste un masque de bits)




------------------------------------
"On n'est pas au resto : ici on ne fait pas dans les plats tout cuits ..."

OoWORAoO
vendredi 15 juin 2007 à 01:09:21 | Re : SVP (correction dun petit code : filtrage noirt/blanc)

najah01_3

salut ,

les composantes r3 g3 b3 sont elles memes des compsates rouge vert bleu , pourquoi faire (r3 << 16) + (g3 << 8) + b3 .
vendredi 15 juin 2007 à 09:12:35 | Re : SVP (correction dun petit code : filtrage noirt/blanc)

Twinuts

Membre Club Administrateur CodeS-SourceS
Salut,

tu donnes la réponse dans ta question....




------------------------------------
"On n'est pas au resto : ici on ne fait pas dans les plats tout cuits ..."

OoWORAoO
samedi 23 juin 2007 à 07:00:53 | Re : SVP (correction dun petit code : filtrage noirt/blanc)

najah01_3

salam ,

voila mon code qui fait un detecteur horizoatal et vertical . mais le probleme est qu il ne donne pas le resultat siuhaitable . parfois il affiche l image tel quelle .

public int filterRGB(int x, int y, int rgb)  {
        if (y == 0) {
            return rgb ;
        }
        
        if (x == 0) {
            return rgb ;
        }
        
        int yprevious = y - 1 ;
        if (yprevious < 0 ) {
            yprevious = width - 1;
        }
        
        int xprevious = x - 1 ;
        if (xprevious < 0 ) {
            xprevious = height - 1;
        }
        
        int ypreviousRGB = data[width*x + yprevious] ;
        int xpreviousRGB = data[x + xprevious*height] ;
        
        int a1 = (rgb >> 24) & 0xFF;

        int r1 = (rgb >> 16) & 0xFF;
        int g1=  (rgb >> 8)  & 0xFF;
        int b1=  rgb  & 0xFF;
        
        int r2 = (ypreviousRGB >> 16) & 0xFF;
        int g2 = (ypreviousRGB >> 8) & 0xFF ;
        int b2 =  ypreviousRGB & 0xFF;
        
        int r3 = (xpreviousRGB >> 16) & 0xFF;
        int g3 = (xpreviousRGB >> 8) & 0xFF ;
        int b3 =  xpreviousRGB & 0xFF;
        
        int r4 = r2 - r1 ;
        int g4 = g2 - g1 ;
        int b4 = b2 - b1 ;
        
        int r5 = r3 - r1 ;
        int g5 = g3 - g1 ;
        int b5 = b3 - b1 ;
        
        int r6 =(int) (Math.sqrt((r4*r4)+(r5*r5)));
        int g6 = (int)(Math.sqrt((g4*g4)+(g5*g5)));
        int b6 = (int) (Math.sqrt((b4*b4)+(b5*b5)));
        
         return   ((a1<<24)+(r6 << 16) + (g6 << 8) + b6);
       //    return   ((a1<<24)+(r5 << 16) + (g5 << 8) + b5);
    }
}

mardi 17 juillet 2007 à 11:23:53 | Re : SVP (correction dun petit code : filtrage noirt/blanc)

najah01_3

salut twunis ,

j ai realisé une applet avec convolveOP . il donne le message derror" identifier ;;"

est ce la formule d applet est juste d abord ???

public class filtreImage extends Applet {
    private Image img ;
    private BufferedImage bi ;
     //float[] filter = new float { 0f,-1f,0f,-1f,4f,-1f,0f,-1f,0f } ;
            
    
    public void init() {
        // Création d'une image et de son négatif
        img        = getImage(getCodeBase(), "img3.gif");
        BufferedImage bi = new BufferedImage(img.getWidth(null) ,img.getHeight(null),BufferedImage.TYPE_INT_RGB);
    }
    
    public static BufferedImage contour(BufferedImage bi){
        float[] filter = { 0f, -1f, 0f, -1f, 4f, -1f, 0f, -1f, 0f };
        Kernel kernel = new Kernel(3, 3, filter);
        ConvolveOp op = new ConvolveOp(kernel);
        return op.filter(bi, null);
    }

    
    public void paint(Graphics  gc) {
    
        //if (image != null) {
            // Affichage des images
            Graphics2D g = bi.createGraphics();
           // g.drawImage(contour(createBufferedImag(bi)),0,0,this);
            g.drawImage(contour((bi)),0,0,this);

        //}
    }


Cette discussion est classée dans : int, rgb, 0xff, yprevious, previousrgb


Répondre à ce message

Sujets en rapport avec ce message

filtre/probleme [ par najah01_3 ] salam , voila mon code qui fait un detecteur horizoatal et vertical . mais le probleme est qu il ne donne pas le resultat siuhaitable . parfois il af Problème YUV->RGB [ par silvervana ] Bonjour,Je voudrais pouvoir passer d'un mode RGB à un mode YUV, et inversement. Le problème c'est qu'en partant d'une image RGB que je modifie en YUV, pixelgrabber - conversion RGB/int [ par lutecefalco ] qd on utilise un pixelgrabber et pixelgrab(), ça remplit un tableau d'entiers en fonction du code RGB.Je trouve pas l'algo qui permet de passer du cod filtre couleur dans une application jdev [ par marmouzine ] Bonjour, je souhaite réaliser une application qui utilise des filtres de couleur dans jdev.étant encore débutant, j'ai un peu de mal à bien comprendre Récupération coordonnées pixel [ par LiliF69 ] Bonjour à tous. Je voudrais savoir comment on récupère les coordonnées des pixels d'une imageJ'utilise un BufferefImage que j'étudie ligne par ligne e filtre noir et blanc [ par najah01_3 ] salam , je ai realisé le programme de detections de contour d une image blan/noir . lors de l execution un message d ereur dans la partie "public in GregorianCalendar(int year, int Month, int Date) [ par adrienr11vdv ] bonjour à tous,je saisis une date comme ceci.        GregorianCalendar date3 = new GregorianCalendar(2006, 05, 7 );seulement date3 me renvoit toujours Urgent svp un probleme de trie!!!! [ par wissal04 ] avant de commencer bsr a tous,j'ai un probleme de tri,j'ai fais un tableau a une seul dimenssion et je voudrais le trié avant d'afficher son contenue probleme de borne tableau en java [ par youssef0360 ] bjr tou le monde :je suis un etudiant en developemment informatique + null en java quand je compile ce code : class tri2t { public static void main(St JTable et JCheckbox [ par greglover ] Bonsoir,je sais que l'on va me sauter dessus pour me dire que le sujet a déjà été traité 20 fois mais malgré l'aide que je trouve sur le net, je n'arr


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Février 2010
LMMJVSD
1234567
891011121314
15161718192021
22232425262728

Consulter la suite du CalendriCode

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,343 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales