110 likes | 252 Views
Seminar I - PAIM. Detalii. seminar: punctaj total 30p Lucrare finala Prezenta -> puncte bonus Lucrare dupa fiecare seminar materiale: http://ai.pub.ro -> Teaching -> Curs PAIM. MATLAB. “Matrix Laboratory” – mediu de dezvoltare a algoritmilor.
E N D
Detalii • seminar: punctaj total 30p • Lucrare finala • Prezenta -> puncte bonus • Lucrare dupa fiecare seminar • materiale: http://ai.pub.ro -> Teaching -> Curs PAIM
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
MATLAB • 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": >> helpnume_functie;
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;
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)
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)
Lucrul cu imagini e.g. : Construireauneiimaginibinare, tabla de sah: OBS: Pe cat posibilincercatisaevitatibuclele (while, for)! Matlabeste un limbajinterpretat, fiecaretrecereprinbuclagenereazareinterpretareainstructiunilor -> lent. W = 300; H = 300; % dimensiunileimg imag = zeros(H, W); % init imagine tic; % pornesccronometrul for i = 1 : 2 : H for j = 1 : 2 : W imag(i, j) = 255; end end disp(toc); % afiseztimpul tic; imag(1:2:end, 1:2:end) = 255; disp(toc);
Probleme • Sa se construiasca o imagine binara (douavalori de intensitate) care contine in coloanele pare prima valoareiarpecoloaneleimparepecea de a doua. (obs: sa se foloseasca ‘zeros’ sau ‘ones’ pentruprealocareamatricei) • Sa se construiasca o imagine de dimensiune 640 x 480 penivele de gri (0 = negru, 255 = alb) cu o crestereliniara in intensitate de la coloana 1 la coloana 640 (coloanelevoraveaacelasinivel). Dacaestenecesar, sa se foloseascasifunctiile ‘linspace’, ‘repmat’. • Sa se construiasca o imagine de dimensiune N x N penivele de gri. Imagineavafiimpartita in patrucadrane. In ordineaacelor de ceasornic: - cadranul 1(Nord-Est) vacontinepecoloaneleimparenegru, pecoloanele pare alb. - cadranul 2 (SE) vacontine o crestereliniara in intensitate de la prima linie (negru) la ultimalinie (alb). - cadranul 3 (SV) vacontine alb. - cadranul 4 (NV) vacontinenegru.
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.
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