Hisztogram műveletek Matlabban

Hisztogram

Egy kép hisztogramját az imhist() függvénnyel tudjuk lekérdezni. Amennyiben nem várunk visszatérési értéket, a függvény kirajzolja a paraméterként kapott kép hisztogramját. Ha a hisztogram értékeit el akarjuk tárolni (és nem csak megjelenítenék), akkor egy kételemű tömbbe várjuk a visszatérési értéket, ahol az első elem tartalmazza az (intenzitásokhoz tartozó) előfordulások számát egy vektorban, a második elem pedig az intenzitások értékének vektorát.

>> img = imread('einstein.png');
>> imhist(img);
>> [count, intensity] = imhist(img);

 

Eredeti kép A kép hisztogramja

Hisztogram széthúzás

Hisztogram széthúzásra nincsen külön függvény, habár van néhány beépített megoldás a hisztogram széthúzására. Készítsünk olyan függvényt, amely megvalósítja a hisztogram széthúzást.

function result = myhiststretch( img )
  img2 = uint16(img);  %% az átskálázás során ideiglenesen túllépnénk a [0;255] tartományon
  minval = min(img2(:));
  maxval = max(img2(:));
  result = 255 * (img2-minval) / (maxval - minval);
  result = uint8(result);
end

 

Hisztogram kiegyenlítés

Matlabban a hisztogram kiegyenlítésre a histeq() függvény használható. A függvény paramétereként meg kell adni a szürkeárnyalatos képet. Az eredmény a kiegyenlített kép.

>> img = imread('cell.png');
>> result = histeq(img);
>> imshow(result);

Eredeti kép (cell.png) Kiegyenlített kép