det(C); % determinant trace(C'*C) % transponovaná matice rank(C); % hodnsot matice C(3,:)=[4,5,3,2] % definuje 3. řádek, který měníme apostrof transforume matici (řádková - sloupcová) inc(C); % inverzní matice eig(F); % vlastní čísla maice Př: v1 = [1;2;3;4] v2 = [4;3;2;1] Součin matic: sM = A*B skalární součin (výsledkem jedna hodnota): skal = v1'*v2 vektorový součin (výsledkem velikost obou matic): vek = v1*v2' vektor * matice (výsledek je vektor) vmat = v1'*C Př: D = [0,1,1,0; 1,1,0,0; 0,1,0,1; 1,0,0,1] invC = inv(C); jm = C*inv(C) % zkouška funkčnosti Příklady: Rozepiště konjunkční sumu pro obraz 4×4 a odvoďte n-tý řádek matice H (obecně) !!! f = ( f00 f01 f02 f03 f10 f11 f12 f13 f20 f21 f22 f23 f30 f31 f32 f33 ) g(x,y) = suma(3,alpha=0 ( suma(3,beta=0, (f(alpha, beta)*h(x,alpha, y, beta))))) g(x,y) = f(0,0)*h(x,0,y,0) + f(1,0)*h(x,1,y,0) + f(2,0)*h(x,2,y,0) + f(3,0)*h(x,3,y,0) + f(0,1)*h(x,0,y,1) + f(1,1)*h(x,1,y,1) + f(2,1)*h(x,2,y,1) + f(3,1)*h(x,3,y,1) + f(0,2)*h(x,0,y,2) + f(1,2)*h(x,1,y,2) + f(2,2)*h(x,2,y,2) + f(3,2)*h(x,3,y,2) + f(0,3)*h(x,0,y,3) + f(1,3)*h(x,1,y,3) + f(2,3)*h(x,2,y,3) + f(3,3)*h(x,3,y,3) 5.řádek: h(0,0,1,0), h(0,1,1,0), h(0,2,1,0), 16. prvek bude h(0,3,1,3) g = H * f; % zákaldní transformace, ostatní jsou už jen transformace této rovnice VYHLAZOVÁNÍ OBRAZU Odvoďte transformační matici H vyhlazováním obrazu 3×3, aplikujte na obraz prvočísel. Proveďte zkoušku pro první 3 body. (demonstrační příkald) !!! Obraz prvočísel: f = ( 1,2,3 5,7,11 13,17,19 ) f(0,0), f(0,1), f(0,2) f(1,0), f(1,1), f(1,2) f(2,0), f(2,1), f(2,2) Konvoluční maska m = 1/10 ( 1,1,1 1,2,1 1,1,1 } Musíme matici rozšířit (kvůli okrajovým pixelům), na okraje dáme pixel z druhé strany (navazování obrazu jakoby) f(2,2) f(2,0), f(2,1), f(2,2) f(2,0) f(0,2) f(0,0), f(0,1), f(0,2) f(0,0) f(1,2) f(1,0), f(1,1), f(1,2) f(1,0) f(2,2) f(2,0), f(2,1), f(2,2) f(2,0) f(0,2) f(0,0), f(0,1), f(0,2) f(0,0) Vektor obrazu f = ( f(0,0) f(1,0) f(2,0) f(0,1) f(1,1) f(2,1) f(0,2) f(1,2) f(2,2) Konvoluce obrazu g(0,0) = 1/10*( 1*f(2,2) + 1*f(2,0) + 1*f(2,1) + 1*f(0,2) + 2*f(0,0) + 1*f(0,1) + 1*f(1,2) + 1*f(1,0) + 1*f(1,1)) 1/10*( 1*f(0,2) + ... 1*f(2,1)) Podle matice F (vktor obrazu, se musí matice seřadit) 1/10*(2, 1, 1, 1, 1, 1, 1, 1, 1) Prostě po zkrácení vznikne matice 1/10 * ( 9×9), kde na diagonále jsou 2, všude jinde 1. g = 1/10 * matice 9×9 s dvojkovou diagonálou * (1;5;13;2;7;11;13;17;19) = (7,9;8,3;9,1;...)