155GIT1 / 10. cvičení

Z GeoWikiCZ

Obrazová data

Náplň cvičení

  1. načtení obrázku imread(), imshow()
  2. základní informace imfinfo()
  3. binary, indexed, greyscale a truecolor
  4. příkazy image(), imagesc(), barevné schéma colormap()
  5. převod do odstínů šedi rgb2ind -> ind2gray
  6. rozklad obrázku na jednotlivé vrstvy RGB

Ukázky

Načtení obrázku do matice

% načtení z URL
url1 = 'http://upload.wikimedia.org/wikipedia/commons/a/ae/Aristotle_Altemps_Inv8575.jpg'
obr1 = imread(url1);
size(obr1)
% zobrazení obrázku v grafickém okně
imshow(obr1)
% zobrazení metadat
imfinfo(url1)

Zobrazení matice jako obrázku

obr2 = rand(100, 100) * 255;
image(obr2)
% škálovat data, tak aby bylo využito célé barevné schéma
figure()
imagesc([0 50], [0 50], obr2)
% nastavit vlastní barevné schéma
colormap('gray')

Typy obrazových dat

% binární rastr
b = round(rand(25, 25));
ob = imagesc(b) % vs. image()
colormap('gray')
% rastr v odstínech šedi
obr1 = imread('http://upload.wikimedia.org/wikipedia/commons/f/fa/Grayscale_8bits_palette_sample_image.png');
size(obr1)
% indexovaný raster
obr2 = imread('http://upload.wikimedia.org/wikipedia/commons/7/7c/Adaptative_8bits_palette_sample_image.png');
size(obr2)
[obr2, cmap] = imread('http://upload.wikimedia.org/wikipedia/commons/7/7c/Adaptative_8bits_palette_sample_image.png');
size(cmap)
imshow(obr2)
imshow(obr2, cmap)
% true color (RGB)
obr3 = imread('http://upload.wikimedia.org/wikipedia/commons/6/69/Truecolor.png');
size(obr3)

Konverze typů obrazových dat

% indexovaný na odstíny šedi
obr2_g = ind2gray(obr2, cmap);
imshow(obr2, cmap)
figure()
imshow(obr2_g)
% RGB na indexovaný
[obr3_i, cmap] = rgb2ind(obr3, 256);
size(obr3)
size(obr3_i)
size(cmap)

Rozklad na vrstvy RGB

size(obr3)
R = obr3;
G = obr3;
B = obr3;
size(R)
% vynulování
R(:,:,[2 3]) = 0;
G(:,:,[1 3]) = 0;
B(:,:,[1 2]) = 0;
% test
size(R)
R(1,:,1)
R(1,:,2)
R(1,:,3)
% vykreslení vrstev RGB
figure()
subplot(3,1,1)
imshow(R)
subplot(3,1,2)
imshow(G)
subplot(3,1,3)
imshow(B)
% převod do stupňů šedi
figure()
subplot(3,1,1)
imshow(mat2gray(R(:,:,1), [0, 255]))
subplot(3,1,2)
imshow(mat2gray(G(:,:,2), [0, 255]))
subplot(3,1,3)
imshow(mat2gray(B(:,:,3), [0, 255]))