Seminar I - PAIM
description
Transcript of Seminar I - PAIM
Seminar I - PAIM
Apr 21, 2023 2
Detalii
• seminar: punctaj total 30p– Lucrare finala– Prezenta -> puncte bonus– Lucrare dupa fiecare seminar
• materiale: http://ai.pub.ro -> Teaching -> Curs PAIM
Apr 21, 2023 3
MATLAB
• “Matrix Laboratory” – mediu de dezvoltare a algoritmilor.
• include un lb. de programare interpretat, de nivel inalt, asemanator dpdv al sintaxei cu C.
• orice variabila = o matrice cu index de inceput 1 vectorii sunt matrici linie sau coloana iar un scalar este interpretat ca o matrice de dimensiune 1 x 1
Apr 21, 2023 4
• operatori importanti in lucrul cu imagini: “ : ” , “ . ” , " ' "
e.g: - mat2 = mat1(1:20, 1:50); "mat2 are dim 20 x 50" - mat2 = mat1(1:2:18, 1:2:54); =>
linia1(coloana1, coloana3, coloana5...) linia3(coloana1, coloana3, ...) ...
- mat2(end: - 1: 1, : ) = mat(1 : end, : );
- h = 2 1 q = 2 2 2 3 2 5
p = h * q p = h .* q
p = 6 9 p = 4 2 10 19 4 15
- A' = transpusa matricei A
• in "Command Window": >> help nume_functie;
MATLAB
Apr 21, 2023 5
Lucrul cu imagini
• deschiderea imaginilor:imagine = imread('cale_imagine');
• afisarea imaginilor:
image(imagine);
colormap gray(256);
( sau imshow, imagesc )
• nu uitati: - in fereastra de comanda
>> help imread;
>> help colormap;
Apr 21, 2023 6
Lucrul cu imagini
e.g. : Afisarea "in oglinda" a unei imagini:
1. File -> New-> Blank M File
2. imag = imread('lena512.jpg');
mirror(1:end,1:end) = imag(1:end,end:-1:1);
figure, image(mirror);
colormap gray(256);
3. File -> Save
4. Debug -> Run (F5)
Apr 21, 2023 7
Lucrul cu imagini
e.g. : Construirea unei imagini binare, tabla de sah:
1. File -> New-> Blank M File
2. W = 100; H = 100; % dimensiunile img
imag = zeros(H, W); % init imagine
imag(1:2:end,1:2:end) = 255;
figure, image(imag);
colormap gray(256);
3. File -> Save
4. Debug -> Run (F5)
Apr 21, 2023 8
Lucrul cu imaginie.g. : Construirea unei imagini binare, tabla de sah:
OBS: Pe cat posibil incercati sa evitati buclele (while, for)! Matlab este un limbaj interpretat, fiecare trecere prin bucla genereaza reinterpretarea instructiunilor -> lent.
W = 300; H = 300; % dimensiunile img imag = zeros(H, W); % init imagine
tic; % pornesc cronometrul for i = 1 : 2 : H
for j = 1 : 2 : Wimag(i, j) = 255;
endenddisp(toc); % afisez timpul
tic;imag(1:2:end, 1:2:end) = 255;
disp(toc);
Apr 21, 2023 9
Probleme• Sa se construiasca o imagine binara (doua valori de intensitate) care contine in
coloanele pare prima valoare iar pe coloanele impare pe cea de a doua. (obs: sa se foloseasca ‘zeros’ sau ‘ones’ pentru prealocarea matricei)
• Sa se construiasca o imagine de dimensiune 640 x 480 pe nivele de gri (0 = negru, 255 = alb) cu o crestere liniara in intensitate de la coloana 1 la coloana 640 (coloanele vor avea acelasi nivel). Daca este necesar, sa se foloseasca si functiile ‘linspace’, ‘repmat’.
• Sa se construiasca o imagine de dimensiune N x N pe nivele de gri. Imaginea va fi impartita in patru cadrane. In ordinea acelor de ceasornic:
- cadranul 1(Nord-Est) va contine pe coloanele impare negru, pe coloanele pare alb.
- cadranul 2 (SE) va contine o crestere liniara in intensitate de la prima linie (negru) la ultima linie (alb).
- cadranul 3 (SV) va contine alb.- cadranul 4 (NV) va contine negru.
Probleme
• Folosind functia ‘image’ sa se deschida o imagine (pe tonuri de gri) stocata pe disc si sa se realizeze oglindirea sa dupa axa verticala / orizontala. (obs: daca este necesar se va folosi si functia ‘length’ pentru a calcula dimensiunile imaginii)
• Sa se "taie" imaginea de la problema precedenta astfel incat noua imagine sa contina doar jumatatea stanga a originalului
• Sa se "roteasca" imaginea cu 90 grade in sensul acelor de ceasornic / in sens invers acelor de ceasornic. Sa se roteasca imaginea cu 180 grade.
Apr 21, 2023 10
Probleme
• Sa se realizeze o deplasare la dreapta a coloanelor din imagine cu un pas impus. Coloanele care depasesc vor fi reasezate la ‘inceputul’ imaginii.
• Sa se realizeze o deplasare a liniilor din imagine cu un pas impus. Liniile care depasesc vor fi reasezate la ‘inceputul’ imaginii.
• Sa se deschida o imagine salvata pe disc si sa se evidentieze printr-o nuanta impusa toate valorile de gri situate intre doua praguri
Apr 21, 2023 11