Esercizio Matlab

Strumenti informatici per la matematica applicata, le simulazioni, il disegno: Mathcad, Matlab, Scilab, Microcap, PSpice, AutoCad ...

Moderatori: Foto Utenteg.schgor, Foto Utentedimaios

Avatar utente
Foto UtenteMrFrost
10 2
Messaggi: 14
Iscritto il: 2 giu 2014, 1:49
0
voti

[1] Esercizio Matlab

Messaggioda Foto UtenteMrFrost » 31 ago 2014, 11:40

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. #-o

Vi ringrazio!

Avatar utente
Foto UtenteRussell
3.373 3 5 9
Master
Master
Messaggi: 2193
Iscritto il: 4 ott 2009, 10:25
0
voti

[2] Re: Esercizio Matlab

Messaggioda Foto UtenteRussell » 31 ago 2014, 12:50

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

Codice: Seleziona tutto

Imm = Imm/M*255;


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

Codice: Seleziona tutto

idx=find(Imm>255);
Imm(idx)=255;


Non ho provato il codice, ma dovrebbe andare

ciao

Avatar utente
Foto UtenteMrFrost
10 2
Messaggi: 14
Iscritto il: 2 giu 2014, 1:49
0
voti

[3] Re: Esercizio Matlab

Messaggioda Foto UtenteMrFrost » 31 ago 2014, 15:56

Ciao :-)

nel ringraziarti un solo dubbio, il valore di M come lo trovo?

thx

Avatar utente
Foto UtenteRussell
3.373 3 5 9
Master
Master
Messaggi: 2193
Iscritto il: 4 ott 2009, 10:25
0
voti

[4] Re: Esercizio Matlab

Messaggioda Foto UtenteRussell » 31 ago 2014, 17:12

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

Avatar utente
Foto UtenteMrFrost
10 2
Messaggi: 14
Iscritto il: 2 giu 2014, 1:49
0
voti

[5] Re: Esercizio Matlab

Messaggioda Foto UtenteMrFrost » 15 set 2014, 11:09

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);

Avatar utente
Foto UtenteRussell
3.373 3 5 9
Master
Master
Messaggi: 2193
Iscritto il: 4 ott 2009, 10:25
0
voti

[6] Re: Esercizio Matlab

Messaggioda Foto UtenteRussell » 15 set 2014, 12:23

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)

Avatar utente
Foto UtenteMrFrost
10 2
Messaggi: 14
Iscritto il: 2 giu 2014, 1:49
0
voti

[7] Re: Esercizio Matlab

Messaggioda Foto UtenteMrFrost » 15 set 2014, 12:58

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
:D

grazie!


Torna a “Programmi applicativi: simulatori, CAD ed altro”