Professional Documents
Culture Documents
Lab3 Glegola 200811
Lab3 Glegola 200811
Contents
1. CEL ĆWICZENIA
2. ZASOBY
3. Wstęp
4. EKSPERYMENT
4.1 Przygotowanie zajęć
4.2 Realizowane zadania
Zadanie 2 i 3
4.2.a Zadanie 1a
4.2.b Zadanie 1b
4.2.d Zadanie 2 i 3
4.3 Uwagi i wnioski
1. CEL ĆWICZENIA
Zapoznanie się z transformacjami geometrycznymi 2D obrazów w środowisku Matlab.
2. ZASOBY
* MATLAB i odpowiednie "toolboxy".
3. Wstęp
Wybrane fragmenty instrukcji laboratoryjnej.
4. EKSPERYMENT
% Zadanie 1
m = 10;
n = 15;
dx = 0.067;
dy = 0.067;
X = zeros(m,n);
Y = zeros(m,n);
for i = 1:m
for j = 1:n
end
I = zeros(m,n);
J = zeros(m,n);
for i = 1:m
for j = 1:n
end
end
Zadanie 2 i 3
B = [42,100; 133,353]';
solveSimi1(imOrg1,A,B,1);
imOrg2 = imread('BB.bmp');
A = [180,177; 252,360]';
B = [223,120; 381,266]';
solveSimi1(imOrg2,A,B,2);
solveAffi(imOrg1,A,B,3);
A = [1,360; 180,177;295,108]';
solveAffi(imOrg2,A,B,4);
4.2.a Zadanie 1a
Napisz funkcję do przekształcenia teoretycznych współrzędnych obrazu we współrzędne obrazu cyfrowego, o rozdzielczości
mxn
T = [dx,0,-0.5*m*dx;...
0, -dy, 0.5*n*dy;...
0,0,1];
vin = [i;j;1];
vout = T*vin;
x = vout(1)/vout(3);
y = vout(2)/vout(3);
end
X =
Columns 8 through 14
Column 15
-0.4355
-0.3685
-0.3015
-0.2345
-0.1675
-0.1005
-0.0335
0.0335
0.1005
0.1675
Y =
Columns 1 through 7
Columns 8 through 14
Column 15
-0.6700
-0.6700
-0.6700
-0.6700
-0.6700
-0.6700
-0.6700
-0.6700
-0.6700
-0.6700
4.2.b Zadanie 1b
Napisz funkcję dokonującej transformacji odwrotnej do punktu (a)
T = [1/dx,0,0.5*m;...
0, -1/dy, 0.5*n;...
0,0,1];
vin = [x;y;1];
vout = T*vin;
i = vout(1)/vout(3);
j = vout(2)/vout(3);
end
I =
Columns 1 through 7
Columns 8 through 14
Column 15
1.0000
2.0000
3.0000
4.0000
5.0000
6.0000
7.0000
8.0000
9.0000
10.0000
J =
Columns 1 through 7
Columns 8 through 14
Column 15
15.0000
15.0000
15.0000
15.0000
15.0000
15.0000
15.0000
15.0000
15.0000
15.0000
4.2.d Zadanie 2 i 3
function H2 = solveSimi1(imOrg,A,B,i)
disp(H);
figure(i); imshow(imOut);
end
function solveAffi(imOrg,A,B,i)
disp(H);
imOut = transform(imOrg,H);
figure(i); imshow(imOut);
end
function w = isInside(v,n)
end
function H = compSimi1(A,B)
p = A(:,2) - A(:,1);
q = B(:,2) - B(:,1);
tt = B(:,1) - V * A(:,1);
end
function H = compAfii(A,B)
v1 = [A(:, 1)',1];
v2 = [A(:, 2)',1];
z = [0,0,0];
x = M \ B(:);
end
imOut = uint8(zeros(height,width));
for y = 1 : height
for x = 1: width
v = round(H * [x;y;1]);
xPost = v(1);
yPost = v(2);
imOut(yPost,xPost) = imIn(y,x);
end
end
end
0 0 1.0000
0 0 1.0000
0 0 1.0000
0 0 1.0000