[ Pobierz całość w formacie PDF ]
Wczytanie obrazków do matlaba

 

A = imread('1.jpg');

imshow(A);

 

 

B = imread('2.jpg');

imshow(B);

 

C = imread('3.jpg');

imshow(C);

 

Zamiana na odcienie szarości

 

Ag=rgb2gray(A);

imshow(Ag);

 

Bg=rgb2gray(B);

imshow(Bg);

 

 

 

Cg=rgb2gray(c);

imshow(Cg);

 

 

 

Wartości i współrzędne pikseli o największej i najmniejszej wartości intensywności

 

Ma = max(max(Ag); // 255;

for i=1:size(Ag,1)

for j=1:size(Ag,2)

if(Ag(i,j)==Ma)

disp(sprintf('%d, %d', i,j));

end

end

end

 

603, 708

735, 667

1023, 680

1036, 630

1040, 720

1570, 63

1571, 49

1571, 50

1571, 63

1571, 332

1571, 352

 

Mina = min(min(Ag)); //0

 

for i=1:size(Ag,1)

for j=1:size(Ag,2)

if(Ag(i,j)==Mina)

disp(sprintf('%d, %d', i,j));

end

end

end

 

505, 633

587, 589

673, 506

722, 620

731, 529

745, 608

758, 208

828, 170

853, 1213

869, 1194…

 

Mb = max(max(Bg));

 

for i=1:size(Bg,1)

for j=1:size(Bg,2)

if(Bg(i,j)==Mb)

disp(sprintf('%d, %d', i,j));

end

end

end

 

97, 654

239, 752

250, 795

264, 686

267, 784

325, 772

405, 402

421, 375

440, 329

441, 778

445, 141

450, 383

457, 478…

 

Minb = min(min(Bg)); // 1

 

for i=1:size(Bg,1)

for j=1:size(Bg,2)

if(Bg(i,j)==Minb)

disp(sprintf('%d, %d', i,j));

end

end

end

 

949, 509

 

Mc=max(max(Cg)); //255

 

for i=1:size(Cg,1)

for j=1:size(Cg,2)

if(Cg(i,j)==Mc)

disp(sprintf('%d, %d', i,j));

end

end

end

 

1569, 50

1570, 46

1570, 49

1570, 50

1570, 284

1570, 302

1570, 323

1570, 324

1570, 328

1570, 330

1570, 331

1570, 332

1571, 46…

Minc = min(min(Cg)); //0

 

for i=1:size(Cg,1)

for j=1:size(Cg,2)

if(Bg(i,j)==Minc)

disp(sprintf('%d, %d', i,j));

end

end

end

 

385, 584

420, 622

424, 624

431, 591

457, 677

461, 816

462, 816

465, 781

467, 582

499, 632

499, 636….

 

Histogram dla trzech obrazów w skali szarości

 

 

hisA=zeros(256,1);

 

for i=1:size(Ag,1)

for j=1:size(Ag,2)

hisA(Ag(i,j)+1)=hisA(Ag(i,j)+1)+1;

end

end

bar([1:256],hisA);

 

 

hisB=zeros(256,1);

 

for i=1:size(Bg,1)

for j=1:size(Bg,2)

hisB(Bg(i,j)+1)=hisB(Bg(i,j)+1)+1;

end

end

bar([1:256],hisB);

 

 

hisC=zeros(256,1);

 

for i=1:size(Cg,1)

for j=1:size(Cg,2)

hisC(Cg(i,j)+1)=hisC(Cg(i,j)+1)+1;

end

end

bar([1:256],hisC);

 

 

 

Za pomocą tablicy LUT popraw obrazy o złym kontraście

 

allA = size(Ag,1)*size(Ag,2); //ilość wszystkich pikseli - 1997568

Obrazek B

distB=zeros(256,1);//dystrybuant dla obrazka Bg

lutB=zeros(256,1);// tablica lut dla obrazka Bg;

Obliczanie dystrybuanty:

for i=1:256

h=0;

for j=1:i

h=hisB(j)+h;

end

distB(i)=h/allA;

end

 

D0 – pierwszy niezerowy element dystrybuanty

 

Obliczanie tablicy LUT

 

for i=1:256

lutB(i)=((distB(i)-D0)/(1-D0))*255;

end

 

Poprawiony obrazek

 

for i=1:size(Bg,1)

for j=1:size(Bg,2)

Bg2(i,j)=lutB(Bg(i,j));

end

end

 

 

Obrazek C

 

distC=zeros(256,1);

lutC=distC;

 

Obliczanie dystrybuanty:

 

for i=1:256

h=0;

for j=1:i

h=hisC(j)+h;

end

distC(i)=h/allA;

end

 

Obliczanie tablicy LUT

 

for i=1:256

lutC(i)=((distC(i)-D0)/(1-D0))*255;

end

 

Poprawka na uwzględniająca indeks 0:

 

lutC1=zeros(257,1);

for i=1:256

lutC1(i+1)=lutC(i);

end

 

for i=1:size(Cg,1)

for j=1:size(Cg,2)

Cg2(i,j)=lutC1(Cg(i,j)+1);

end

end

 

imshow(Cg2);

 

[ Pobierz całość w formacie PDF ]
  • zanotowane.pl
  • doc.pisz.pl
  • pdf.pisz.pl
  • zawrat.opx.pl
  • Archiwum
    Powered by wordpress | Theme: simpletex | © Nie można obronić się przed samym sobą.