img = imread('mona.png');
if ndims(img) > 2
img = rgb2gray(img);
end
[p, bins] = oppgave2_hist(img);
% For aa sammenligne med imhist fra Mathworks:
[h1, bins1] = imhist(img);
p1 = h1 ./ numel(img);
figure()
subplot(1,2,1)
bar(bins1, p1)
title('imhist (normalisert)')
subplot(1,2,2)
bar(bins, p1)
title('oppgave2\_hist')
% Sjekker om oppgave2_hist og imhist gjoer det samme:
thr = 1e-10;
test = all(abs(p1 - p) < thr);
if test == false
error('oppgave2\_hist og imhist gjoer ikke det samme')
end
Programmet kan lastes ned her (høyreklikk og trykk "lagre lenke som"/"save link as")
function [p, intensities] = oppgave2_hist(img)
% Anta at bildet har heltallige verdier mellom 0 og 255
G = 256;
intensities = 0:(G-1);
p = zeros(G, 1);
for i = 1:G
p(i) = sum(sum(img == intensities(i)));
end
p = p ./ numel(img);
end
Programmet kan lastes ned her (høyreklikk og trykk "lagre lenke som"/"save link as")
Programmet viser et forslag til hvordan en kan programmere en histogram funksjon i Matlab. Det gjøres også en kort sammenligning om det funksjonen returnerer, faktisk stemmer med imhist. Å teste sine egne metoder er en fin måte å utelukke bugs som kan komme senere i programmet ditt, og en fin mulighet til å bli kjent med hvilke funksjoner som allerede finnes!