Visualizzazione dei risultati da 1 a 3 su 3

Discussione: Filtro 3x3 in Java

  1. #1

    Filtro 3x3 in Java

    Buonasera a tutti.
    Premetto che sono nuovo e che ho esperienza di programmazione ma non tanta in java.
    Dunque.Sto lavorando con una immagine e devo fare una cosa molto semplice,almeno credo.
    Devo creare una finestrina 3 pixel x 3 che faccio scorrere su una immagine e mi calcola la distanza del valore centrale da ogni punto dell'intorno.
    Ora,la mia classe dovrà essere privata e static, ma non riesco proprio ad implementarla con i cicli ( for if....)!!!non è che non riesco a figurarmi nella testa come far scorrere la finestra(sarà un ciclio while o for con variabili x e y che vengono incrementate) ma non ho in testa come calcolare la distanza tra quel punto e gli altri.
    Qualcuno può darmi una mano?alla fine credo sia una cosa veloce...
    Spero che qualcuno mi faccia sapere.
    Alla fine è un normalissimo filtraggio di immagine in cui devo verificare questa condizione per ogni pixel.Il mio problema è che ho conoscenze di C e C++ ...ma in java poco,mi basterebbe una piccola mano col codice

  2. #2
    Utente di HTML.it
    Registrato dal
    Aug 2002
    Messaggi
    8,013
    Devi spiegare un po' che cosa intendi tu per distanza tra pixel (immagino tra luminosità - tipo per una scala di grigi - o per componenti RGB nel caso di immagini a colori).

    Comunque, si tratta di caricare l'immagine dal file e recuperarne alcuni pixel, (ti può aiutare la classe PixelGrabber).
    http://java.sun.com/javase/6/docs/ap...elGrabber.html
    <´¯)(¯`¤._)(¯`»ANDREA«´¯)(_.¤´¯)(¯`>
    "The answer to your question is: welcome to tomorrow"

  3. #3
    No no..è molto + semplice.
    Ho già un metodo pronto che scorre i pixel dell'immagine( immagine in levelli di grigio).
    Io devo solo scorrere l'immagine e per ogni pixel calcolare la differenza tra quello e gli altri 8 della finestra 3x3.poi devo mettere ogni singola differenza in una variabile che si aggiorna volta volta e nel caso che questa sia inferiore ad una certa soglia allora impongo un condizione.
    Quindi il metodo restituirà un void ma non so cosa mettere in ingresso...
    Ti spiego meglio.Sto lavorando con una immagine divisa in 4 quadranti e lavoro sul 4° quadrante.
    Quindi scorrerò i valori da x= width/2 e y = heigth/2 in poi.
    Siccome non lavoro sul bordo il mio metodo salterà prima riga e prima colonna e poi calcolo le mie informazioni.
    avevo pensato ad una cosa del genere...è che non so come fare a gestire le variabili in ingresso e in uscita.

    public static void Maschera_3x3 ( )



    /* metodo che scorre l'immagine HH senza bordi
    per imporre determinate condizioni */

    for( int x =(width/2)+1; x <=(width-1); x++) {
    for ( int y = (heigth/2)+1 ; y <= (heigth -1); y++) {

    int a=coefs.getPixel(x, y); /*prendo il valore centrale */

    for (int i=-1;i=1;i++) { /*calcolo la somma delle*/
    for ( int j=-1 ; j=1 ; j++) { /* differenze tra i pixel della
    maschera e quella centrale */

    int diff= a- coefs.getPixel(x+i, y+j);
    }
    }
    int diff_tot = diff_tot + diff;
    }

    }
    if ( diff_tot < ETC ETC) /* e qui pongo le condizioni che voglio a seconda della differenza */


    }

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.