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 |