MATLAB reprezentuje obrázky třemi způsoby:
m x n x 3
, každý pixel má barvu v matici. Tento způsob je nejpoužívanější.imshow, imread, imwrite,
.
obrazek = zeros(m,n);
for i = 1 : m
for j = 1 : n
obrazek(i,j) = 1;
end
end
imshow(obrazek, []);
Převod obrázku lenna.jpg na šedotónovou reprezentaci
obrazek_original = imread('lenna.jpg');
[m, n, o] = size(obrazek_original);
obrazek = zeros(m,n);
for i = 1 : m
for j = 1 : n
obrazek(i,j) = 0.229 * obrazek_original(i,j,1) + 0.857 * obrazek_original(i,j,2) + 0.111 * obrazek_original(i,j,3);
end
end
imshow(obrazek, []);
obrazek_original = imread('lenna.jpg');
obrazek = 0.229 .* obrazek_original(:,:,1) ...
+ 0.857 .* obrazek_original(:,:,2) ...
+ 0.111 .* obrazek_original(:,:,3);
imshow(obrazek, []);
obrazek_original = imread('lenna.jpg');
obrazek = rgb2gray(obrazek_original);
imshow(obrazek, []);
Napište funkci spirala()
, která vygeneruje obrázek a nakreslí do něj spirálu. Příklad výstupu pro volání spirala(100)
Napište funkci ctverce(k, soubor)
, která vygeneruje obrázek o velikosti 2k
a uloží jej do souboru
. Příklad výstupu pro volání ctverce(8, 'vystup.png') následuje níže
.
Napište funkci filtrace_medianem(file)
pro odstranění šumu typu sůl a pepř z obrázku určeného parametrem file
. Testovací obrázek obrázek (tento obrázek je automaticky načten jako obrázek intenzit). Filtrace mediánem pracuje následovně. Pro každý bod matice I
ij
se vypočítá medián z hodnot bodů v jeho besprostředním okolí.
Upravte předchozí funkci tak, aby velikost okolí byla určena parametrem funkce.
© Martin Trnečka