Pagina 1 di 1
Esercizio Matlab
Inviato: 31 ago 2014, 11:40
da MrFrost
Ciao
Vorrei capire come affrontare questo quesito, ho un'immagine che presenta un istogramma sbilanciato sui pixel scuri, in pratica mancano totalmente i pixel con un valore di grigio superiore a M. In Matlab devo trovare M e generare un offset additivo dell'immagine, mostrando la nuova immagine ottenuta ed il suo negativo.
Vi ringrazio!
Re: Esercizio Matlab
Inviato: 31 ago 2014, 12:50
da Russell
Se non ho capito male devi fare qualcosa che praticamente equivale ad aumentare la "luminosità" di un'immagine
data l'immagine Imm, con valori tra 0 e 255
Noto il valore M (tra 0 e 255)
vuoi rimappare i valori tra 0 e M portandoli tra 0 e 255
In pratica risolvi con
adesso c'è solo il piccolo svantaggio che quei pochi valori superiori a M nell'immagine originale, dopo l'operazione, assumeranno valori superiori a 255
In tal caso devi trovarli e saturarli a 255 con ad esempio questo codice
Non ho provato il codice, ma dovrebbe andare
ciao
Re: Esercizio Matlab
Inviato: 31 ago 2014, 15:56
da MrFrost
Ciao
nel ringraziarti un solo dubbio, il valore di M come lo trovo?
thx
Re: Esercizio Matlab
Inviato: 31 ago 2014, 17:12
da Russell
Be, quello pensavo tu lo sapessi a priori
in effetti non c'è un valore M giusto o sbagliato... dipende da quanto vuoi 'illuminare' la tua immagine
in pratica puoi tranquillamente andare per tentativi assumento M un numero via via minore
partendo da 255 ... e scendendo fino a 0
Re: Esercizio Matlab
Inviato: 15 set 2014, 11:09
da MrFrost
Ciao, ho trovato questo codice, potrebbe andare bene? :)
thx
I = imread('immagine.png');
figure;
imhist(I);
I = double (I);
idx = kmeans( I(:) , 3);
[m,n] = size(I);
A = reshape(idx,m,n);
figure;
image(A);
Re: Esercizio Matlab
Inviato: 15 set 2014, 12:23
da Russell
mah
non saprei
questo approccio è un po' piu' complesso
la funzione kmeans non la conoscevo neanche
in pratica fai fare a lei e alla funzione istogramma il "lavoro sporco "
immagino che a schemo dia il risultato che ti aspettavi... giusto? Se si sei allora a posto
ma hai provato il mio codice, non rispondeva anche lui alle tue esigenze?
(dato che in pratica fa' la stessa cosa)
Re: Esercizio Matlab
Inviato: 15 set 2014, 12:58
da MrFrost
kmeans => L'algoritmo K-Means è un algoritmo di clustering partizionale che permette di suddividere un insieme di oggetti in K gruppi e ritorna un vettore.
La funzione reshape() permette di "arrotolare" il vettore ottenuto ed ottenere una matrice
come effetto comunque i codici eseguono il medesimo compito
grazie!