Pages: [1]   Go Down
Print
Author Topic: equalizzazione  (Read 1190 times)
0 Members e 1 Utente non registrato stanno visualizzando questa discussione.
Vivynz
Forumista Eroico
*****
Offline Offline

Gender: Female
Posts: 2.033


File reality.sys corrupted, Reboot Universe? Y/N


« on: 28-11-2009, 11:56:45 »

stavo provando a realizzare l'equalizzazione in matlab..ma ci sarà qualche errore di logica probabilmente, ma non riesco a capire dov'è il problema...credo di non calcolare correttamente i valori di Sk e quindi questo dà problemi...
Code:
clear all
close all
I=rgb2gray(imread('lena.jpg'));
NK=zeros(1,256);
[m,n]=size(I);
%scorriamo l'immagine e memorizziamo in un array il numero di pixel presenti
%per ogni colore, cioè gli Nk
for i=1:m
    for j=1:n
        NK(I(i,j))=NK(I(i,j))+1;
    end
end
imhist(I);
figure,plot(NK);
%calcoliamo P(Rk) per ognuno dei 256 colori
PRK=zeros(1,256);
for j=1:256
    PRK(1,j)=NK(1,j)/(m*n);
end
SK=zeros(1,256);
%calcoliamo i nuovi valori
for j=1:256
    SK(1,j)=round((255/(m*n))*sum([NK(:,1:j)]));
end
figure,plot(SK);
IEQ=zeros(m,n);
for i=1:m
    for j=1:n
        IEQ(i,j)=SK(I(i,j));
    end
end
figure,imshow(IEQ,[]);
figure,imhist(IEQ);
Logged

L'odrine delle lttere dnetro una praorla non è ipmortatne, la sloa cosa ipmortatne è che la pmria e l'utlima ltteera sinao nel potso giutso. Il rseto può essree in un dsiodrine più totlae e voi ptoerte smerpe lggeree sneza porblmea.
rox
Forumista
***
Offline Offline

Posts: 633


« Reply #1 on: 02-12-2009, 22:43:05 »

io ho provato a farlo in questo modo ma non so mi dà dei valori strani
Code:
function sk=equalizzazione(a)
[m n]=size(a);
r=imhist(a);%metto nell'array r tutte le occorrenze dei vari colori,da 0 a 255
b=zeros(1,256);
for(i=1:256)
    b(i)=r(i)/m*n;%percentuale d pixel di un dato colore(pr(rk))
end
sk=zeros(1,256);
somma=0;
for(j=1:256)
    somma=somma+b(i);
    sk(j)=255*somma;
end

%sk=figure,imhist(sk);
end
Logged

Una macchina è in grado di lavorare come cinquanta uomini comuni, ma nessuna macchina può svolgere il lavoro di un uomo straordinario.
Vivynz
Forumista Eroico
*****
Offline Offline

Gender: Female
Posts: 2.033


File reality.sys corrupted, Reboot Universe? Y/N


« Reply #2 on: 03-12-2009, 00:52:58 »

Ho scoperto che il mio funziona se i nuovi valori sk li sostituisco all'immagine iniziale..altrimenti equalizza l'immagine ma non so perché non visualizza l'istogramma..
Logged

L'odrine delle lttere dnetro una praorla non è ipmortatne, la sloa cosa ipmortatne è che la pmria e l'utlima ltteera sinao nel potso giutso. Il rseto può essree in un dsiodrine più totlae e voi ptoerte smerpe lggeree sneza porblmea.
strikajici_fx
Apprendista Forumista
**
Offline Offline

Posts: 199


« Reply #3 on: 03-12-2009, 19:01:51 »


FINALMENTE CE L'HO FATTA! XD   



clear all
close all

I=rgb2gray(imread('C:\Users\Maria\Documents\Università\09-10\IEM\Esercizi\3-29.jpg'));

A=imhist(I);

[m,n]=size(I);

somma=0;

b=zeros(1,256); %Array di supporto che serve a salvare i valori modificati dell'istogramma

for i=1:256
    b(i)=A(i)/(m*n)
   
    somma=somma+b(i);
   
    b(i)=round(255*somma);
end


N=I;%si inseriscono i valori in una nuova matrice

for i=1:m
    for j=1:n
          N(i,j)=b(I(i,j));
    end
end

subplot(2,2,1);imshow(I);
subplot(2,2,2);imhist(I);
subplot(2,2,3);imshow(N);
subplot(2,2,4);imhist(N);
Logged
Pages: [1]   Go Up
Print
Jump to: