Massimo e minimo livelli di grigio immagine b/n

di il
10 risposte

Massimo e minimo livelli di grigio immagine b/n

Buonasera, questa è la mia prima domanda nel forum, spero che qualcuno mi aiuti.

Data una qualsiasi immagine in bianco e nero io vorrei conoscere i valori esatti del massimo e del minimo dei livelli di grigio che si vedono creando l'istogramma relativo all'immagine.

Grazie in anticipo.

10 Risposte

  • Re: Massimo e minimo livelli di grigio immagine b/n

    Poiche' un'immagine e' semplicemente una matrice (righe x colonne) di quadratini (pixel) ed ogni quadratino ha esattamente un valore, che sullo schermo viene visualizzato con un livelli di grigio, ecco che trovare il massimo ed il minimo e' banale: basta cercare il max ed il min in una lista di numeri.
  • Re: Massimo e minimo livelli di grigio immagine b/n

    migliorabile ha scritto:


    Poiche' un'immagine e' semplicemente una matrice (righe x colonne) di quadratini (pixel) ed ogni quadratino ha esattamente un valore, che sullo schermo viene visualizzato con un livelli di grigio, ecco che trovare il massimo ed il minimo e' banale: basta cercare il max ed il min in una lista di numeri.
    Buongiorno, potresti dirmi gentilmente quali istruzioni devo usare in matlab per ottenerlo? Non ho ben capito come fare. Grazie
  • Re: Massimo e minimo livelli di grigio immagine b/n

    Se la tua immagine è A ti basta fare
    
    max(max(A))
    min(min(A))
    
    in questa maniera ha il massimo e il minimo. L'istogramma non fa altro che dirti quanti pixel ci sono che assumono determinati valori di grigio.
  • Re: Massimo e minimo livelli di grigio immagine b/n

    Saponetta ha scritto:


    Se la tua immagine è A ti basta fare
    
    max(max(A))
    min(min(A))
    
    in questa maniera ha il massimo e il minimo. L'istogramma non fa altro che dirti quanti pixel ci sono che assumono determinati valori di grigio.
    Grazie della risposta.

    Ho eseguito questi comandi, vanno bene?


    Quindi il massimo è 255?
  • Re: Massimo e minimo livelli di grigio immagine b/n

    Se devi creare l'istogramma dell'immagine, puoi usare la funzione imhist .
  • Re: Massimo e minimo livelli di grigio immagine b/n

    La tua immagine non è in bianco e nero però, stai attenta. Il comando ti ha restituito il massimo per ogni livello di colore, Red-Green-Blue.
  • Re: Massimo e minimo livelli di grigio immagine b/n

    Saponetta ha scritto:


    La tua immagine non è in bianco e nero però, stai attenta. Il comando ti ha restituito il massimo per ogni livello di colore, Red-Green-Blue.
    In realtà la mia è un immagine in bianco e nero da satellite quindi presumo particolare, lei come ha capito che non lo è ?

    In ogni modo per favore come dovrei risolvere?

    Mi scusi, davvero non ho capito.
  • Re: Massimo e minimo livelli di grigio immagine b/n

    In realtà la mia è un immagine in bianco e nero da satellite quindi presumo particolare, lei come ha capito che non lo è ?

    In ogni modo per favore come dovrei risolvere?

    Mi scusi, davvero non ho capito
    Allora, evidentemente, ti mancano le basi. Ti spiego bene cosa hai fatto con max(max(Im)).
    max(A)
    se A è una matrice mxn (m righe, n colonne) restituisce il massimo per ogni colonna, quindi un vettore 1xn; applicando di nuovo il max, avremo il massimo assoluto. Questo però è vero nel caso di una matrice bidimensionale. Nel tuo caso abbiamo avuto un vettore 1x1x3, questo perché Im, nel tuo caso, è una matrice tridimensionale, e quindi fare
    max(max(Im))
    ti ha restituito il massimo per il primo livello (mxnx1), il massimo del secondo (mxnx2) e del terzo livello, dove ho Im è una matrice mxnx3.
    Quando fai
    Im = imread('NomeFile');
    hai una matrice mxn (bidimensionale) se l'immagine è in bianco e nero, mxnx3 se è a colori. Questo perché le immagini a colori sono composta da un livello di Rosso, uno di Verde e l'altro di Blu. Ogni livello è una scala di grigi, perché ad esempio il livello di rosso mxnx1 è una matrice bidimensionale.
    Se hai altri dubbi o non è chiaro qualcosa chiedi pure. Cerca però di cercare di recuperare queste basi, che vanno oltre Matlab e che sono alla base della rielaborazione di immagini. Ti basta una piccola ricerca su Google.
  • Re: Massimo e minimo livelli di grigio immagine b/n

    Saponetta ha scritto:


    In realtà la mia è un immagine in bianco e nero da satellite quindi presumo particolare, lei come ha capito che non lo è ?

    In ogni modo per favore come dovrei risolvere?

    Mi scusi, davvero non ho capito
    Allora, evidentemente, ti mancano le basi. Ti spiego bene cosa hai fatto con max(max(Im)).
    max(A)
    se A è una matrice mxn (m righe, n colonne) restituisce il massimo per ogni colonna, quindi un vettore 1xn; applicando di nuovo il max, avremo il massimo assoluto. Questo però è vero nel caso di una matrice bidimensionale. Nel tuo caso abbiamo avuto un vettore 1x1x3, questo perché Im, nel tuo caso, è una matrice tridimensionale, e quindi fare
    max(max(Im))
    ti ha restituito il massimo per il primo livello (mxnx1), il massimo del secondo (mxnx2) e del terzo livello, dove ho Im è una matrice mxnx3.
    Quando fai
    Im = imread('NomeFile');
    hai una matrice mxn (bidimensionale) se l'immagine è in bianco e nero, mxnx3 se è a colori. Questo perché le immagini a colori sono composta da un livello di Rosso, uno di Verde e l'altro di Blu. Ogni livello è una scala di grigi, perché ad esempio il livello di rosso mxnx1 è una matrice bidimensionale.
    Se hai altri dubbi o non è chiaro qualcosa chiedi pure. Cerca però di cercare di recuperare queste basi, che vanno oltre Matlab e che sono alla base della rielaborazione di immagini. Ti basta una piccola ricerca su Google.

    Ok, grazie per il chiarimento, ma nel mio caso quale istruzioni dovrei usare in matlab?

    Sto cercando la teoria relativa ma in rete è facile disperdersi.

    Spero tanto che lei mi aiuti a velocizzare i tempi.
  • Re: Massimo e minimo livelli di grigio immagine b/n

    Se vuoi solo avere il valore massimo, niente di diverso. Semplicemente hai un'immagine che non è in bianco e nero. Se vuoi portare in bianco e nero il comando è
     Im = rgb2gray(Im); 
    .
Devi accedere o registrarti per scrivere nel forum
10 risposte