Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- xc=imread('Lenna.png','PNG');
- x=xc(:,:,1);
- x2=xc(:,:,2);
- x3=xc(:,:,3);
- % histogram to fukcja, ile razy wystapiła dana wartość / liczebność dannych. Dzieli zakres na pod zakresy.
- % punkt histogramu to na osi y 0,255 a na x ile razy wystąpiło
- % 0 256 po grafika 8 bitowa, przy 10 było 2^10
- % wymiary obrazka musi wiedzieć
- [M,N]=size(x);
- h=zeros(1,256);
- % twprzenie histogramu
- for m=1:M
- for n=1:N
- %histogram
- h(x(m,n)+1)=h(x(m,n)+1)+1;
- end
- end
- %kolor czerwony
- plot(h)
- %obrazek dla porównia
- figure(2)
- imagesc(x)
- colormap(gray(256));
- % pierwszy krok algorytm wyrównywanie histogramu, robi z dysrtybuaty ta całka z tego //
- % Y to wszystkie piksele
- H=cumsum(h)
- %dystrybuata o wartosci 256, nigdy nie maleje
- P=round(255*H/(M*N));
- figure(3)
- %plot(P)
- % odwrócona pętla zeby wyrównać pętle
- y1=0*x;
- for m=1:M
- for n=1:N
- %histogram
- value = x(m,n);
- y1(m,n)= P(value+1);
- end
- end
- figure(4)
- imagesc(y1)
- colormap(gray(256));
- h1=zeros(1,256);
- for m=1:M
- for n=1:N
- %histogram
- h1(y1(m,n)+1)=h1(y1(m,n)+1)+1;
- end
- end
- %histogram nie jest idealnie prosty
- H1=cumsum(h1)
- figure(5)
- plot(H1)
- % dreugie
- [M,N]=size(x2);
- h2=zeros(1,256);
- % twprzenie histogramu
- for m=1:M
- for n=1:N
- %histogram
- h2(x2(m,n)+1)=h2(x2(m,n)+1)+1;
- end
- end
- %kolor czerwony
- plot(h2)
- %obrazek dla porównia
- figure(2)
- imagesc(x2)
- colormap(gray(256));
- % pierwszy krok algorytm wyrównywanie histogramu, robi z dysrtybuaty ta całka z tego //
- % Y to wszystkie piksele
- H2=cumsum(h2)
- %dystrybuata o wartosci 256, nigdy nie maleje
- P2=round(255*H2/(M*N));
- figure(3)
- %plot(P)
- % odwrócona pętla zeby wyrównać pętle
- y2=0*x2;
- for m=1:M
- for n=1:N
- %histogram
- value = x2(m,n);
- y2(m,n)= P2(value+1);
- end
- end
- figure(4)
- imagesc(y2)
- colormap(gray(256));
- h2=zeros(1,256);
- for m=1:M
- for n=1:N
- %histogram
- h2(y2(m,n)+1)=h2(y2(m,n)+1)+1;
- end
- end
- %histogram nie jest idealnie prosty
- H2=cumsum(h2)
- figure(5)
- plot(H2)
- % trzeci
- [M,N]=size(x3);
- h3=zeros(1,256);
- % twprzenie histogramu
- for m=1:M
- for n=1:N
- %histogram
- h3(x3(m,n)+1)=h3(x3(m,n)+1)+1;
- end
- end
- %kolor czerwony
- plot(h3)
- %obrazek dla porównia
- figure(2)
- imagesc(x3)
- colormap(gray(256));
- % pierwszy krok algorytm wyrównywanie histogramu, robi z dysrtybuaty ta całka z tego //
- % Y to wszystkie piksele
- H3=cumsum(h3)
- %dystrybuata o wartosci 256, nigdy nie maleje
- P3=round(255*H3/(M*N));
- figure(3)
- %plot(P)
- % odwrócona pętla zeby wyrównać pętle
- y3=0*x3;
- for m=1:M
- for n=1:N
- %histogram
- value = x3(m,n);
- y3(m,n)= P3(value+1);
- end
- end
- figure(4)
- imagesc(y3)
- colormap(gray(256));
- h3=zeros(1,256);
- for m=1:M
- for n=1:N
- %histogram
- h3(y3(m,n)+1)=h3(y3(m,n)+1)+1;
- end
- end
- %histogram nie jest idealnie prosty
- H3=cumsum(h3)
- figure(6)
- plot(H3)
- %po rozciagniecu rosrzeł sie najbardiej niebeiski, bo go było naj mniej
- y(:,:,1)=y1;
- y(:,:,2)=y2;
- y(:,:,3)=y3;
- figure(7)
- imagesc(y)
- %po rozciagniecu rosrzeł sie najbardiej niebeiski, bo go było najmniej
- % na lumnacje i hrominacje
- % y, cb, br rby2cbr
- %nie wyrównujemy kolory
- % tylko luminacje
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement