155GIT1 / 10. cvičení: Porovnání verzí
Založena nová stránka s textem „{{Geoinformatika}} {{Cvičení|155GIT1|8|Obrazová data}} == Náplň cvičení == == Ukázky == == Úlohy ==“ |
mBez shrnutí editace |
||
(Není zobrazeno 95 mezilehlých verzí od 2 dalších uživatelů.) | |||
Řádek 1: | Řádek 1: | ||
{{Geoinformatika}} | {{Geoinformatika}} | ||
{{Cvičení|155GIT1| | {{Cvičení|155GIT1|10|2. test}} | ||
== Náplň == | |||
; Zadání testu | |||
* https://moodle-vyuka.cvut.cz/course/view.php?id=10915 | |||
<!-- | |||
{{Cvičení|155GIT1|10|Python - Funkce, chybový stav, moduly}} | |||
== Náplň == | |||
* [https://geo.fsv.cvut.cz/vyuka/155git1/python/git1-python-03-funkce-moduly.pdf přednáška] | |||
== Ukázky == | |||
* [https://gitlab.com/ctu-k155-lectures/155git1-cviceni/-/blob/master/python/cv3/cv3.ipynb notebook] | |||
== Náplň cvičení == | == Náplň cvičení == | ||
# načtení obrazových dat <code>imread(), imshow()</code> | |||
# základní informace <code>imfinfo()</code> | |||
# binary, indexed, grayscale a truecolor | |||
# příkazy <code>image()</code>, <code>imagesc()</code>, [http://geo.fsv.cvut.cz/user/gin/git1/matlab/matlab.pdf#page=127 barevné schéma] <code>colormap()</code> | |||
# převod do odstínů šedi <code>rgb2ind -> ind2gray</code> | |||
# rozklad obrázku na jednotlivé vrstvy [http://upload.wikimedia.org/wikipedia/commons/3/33/Beyoglu_4671_tricolor.png RGB] | |||
== Ukázky == | == Ukázky == | ||
== | === Načtení obrázku do matice === | ||
Data: https://upload.wikimedia.org/wikipedia/commons/a/ae/Aristotle_Altemps_Inv8575.jpg | |||
<source lang=octave> | |||
% načtení z URL | |||
jmeno1 = 'Aristotle_Altemps_Inv8575.jpg'; | |||
obr1 = imread(jmeno1); | |||
size(obr1) | |||
% zobrazení obrázku v grafickém okně | |||
imshow(obr1) | |||
% zobrazení metadat | |||
imfinfo(jmeno1) | |||
</source> | |||
''Poznámka:'' Matlab i novější verze Octave umí číst data i přes protokol HTTP/HTTPS: | |||
<source lang=octave> | |||
url1 = 'https://upload.wikimedia.org/wikipedia/commons/a/ae/Aristotle_Altemps_Inv8575.jpg'; | |||
obr1 = imread(url1); | |||
</source> | |||
=== Zobrazení matice jako obrázku === | |||
<source lang="octave"> | |||
obr2 = rand(100, 100) * 255; | |||
image(obr2) | |||
colormap('gray') | |||
% škálovat data tak, aby bylo využito celé barevné schéma | |||
figure() | |||
imagesc(obr2) | |||
colormap('gray') | |||
figure() | |||
imagesc([0 50], [0 50], obr2) | |||
colormap('gray') | |||
</source> | |||
=== Typy obrazových dat === | |||
Jednotlivé obrázky ke stažení do pracovního adresáře z následujících url: | |||
* obrázek ve stupních šedi: [http://upload.wikimedia.org/wikipedia/commons/f/fa/Grayscale_8bits_palette_sample_image.png příklad] | |||
* indexovaný obrázek: [http://upload.wikimedia.org/wikipedia/commons/7/7c/Adaptative_8bits_palette_sample_image.png příklad] | |||
* RGB-obrázek: [https://upload.wikimedia.org/wikipedia/commons/b/bc/Parrot.red.macaw.1.arp.750pix.jpg příklad] | |||
<source lang=octave> | |||
% binární rastr | |||
obr3 = round(rand(25, 25)); | |||
ob = imagesc(obr3) % vs. image(), viz níže | |||
% obr3_1 = 255 * round(rand(25, 25)); | |||
% image(obr3) | |||
% image(obr3_1) | |||
colormap('gray') | |||
% rastr v odstínech šedi | |||
jmeno4 = 'Grayscale_8bits_palette_sample_image.png'; | |||
obr4 = imread(jmeno4); | |||
size(obr4) | |||
% indexovaný rastr | |||
jmeno5 = 'Adaptative_8bits_palette_sample_image.png'; | |||
obr5 = imread(jmeno5); | |||
size(obr5) | |||
[obr5, cmap5] = imread(jmeno5); | |||
size(cmap5) | |||
imshow(obr5) | |||
imshow(obr5, cmap5) | |||
% true color (RGB) | |||
jmeno6 = 'Parrot.red.macaw.1.arp.750pix.jpg'; | |||
obr6 = imread(jmeno6); | |||
size(obr6) | |||
imshow(obr6) | |||
</source> | |||
=== Konverze typů obrazových dat === | |||
<source lang=octave> | |||
% RGB na indexovaný rastr | |||
% Matlab | |||
[obr6_i, cmap6] = rgb2ind(obr6, 256); | |||
% Octave | |||
[obr6_i, cmap6] = rgb2ind(obr6); | |||
size(obr6) | |||
size(obr6_i) | |||
size(cmap6) | |||
% indexovaný rastr na odstíny šedi | |||
obr5_g = ind2gray(obr5, cmap5); | |||
imshow(obr5, cmap5) | |||
figure() | |||
imshow(obr5_g) | |||
% formalne existuji i funkce pro opacny prevod, napr. | |||
% odstíny šedi na indexovaný rastr | |||
[obr5_i, cmap5_i] = gray2ind(obr5_g); | |||
figure() | |||
imshow(obr5_i, cmap5_i) | |||
</source> | |||
=== Rozklad na vrstvy RGB === | |||
<source lang=octave> | |||
size(obr6) | |||
R = obr6; | |||
G = obr6; | |||
B = obr6; | |||
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])) | |||
</source> | |||
''Poznámka pro Octave:'' Funkce <tt>mat2gray</tt> je součástí balíčku "image", který lze doinstalovat příkazem: <tt>pkg install image</tt>. | |||
--> | |||
<!-- --> |
Aktuální verze z 7. 2. 2024, 15:53
2. test
Náplň
- Zadání testu