hallway1
filename = '2011_0328_131452AA.JPG';
rgb = im2double(imread(filename));
rgbsm = imresize(rgb,0.4);
imshow(rgbsm);
load hallway1_project
imshow(rgbsm);
hold on
plot(x(1:2),y(1:2),'g','LineWidth',2);
plot(x(3:4),y(3:4),'g','LineWidth',2);
plot(x(5:6),y(5:6),'g','LineWidth',2);
plot(x(7:8),y(7:8),'g','LineWidth',2);
hold off
inpts = [x(1:2) y(1:2); [x(5:6) y(5:6)]];
outpts = [0 0; 0 100; 10 0; 10 100]*10;
T = maketform('projective',inpts,outpts);
[out XData YData] = imtransform(rgbsm,T);
imshow(out);
floor(XData)
floor(YData)
T.tdata.T
ans =
2 33
ans =
-689 3508
ans =
-0.0269 0.5968 -0.0017
-0.0297 0.4653 -0.0010
20.2187 -338.4203 1.0000
out = imtransform(rgbsm,T,'XData',[0 50],'YData',[0 50]);
imshow(out);
ref = zeros(600,800);
rng = 1:400;
ref(100+rng,200+rng)=1;
load hallway_project2
T2 = cp2tform(input_points,base_points,'Projective');
[out XData YData] = imtransform(rgbsm,T2);
imshow(out);
floor(XData)
floor(YData)
T2.tdata.T
ans =
-1460 14481
ans =
-36951 3788
ans =
1.0e+003 *
0.0012 -0.0000 -0.0000
0.0015 0.0075 0.0000
-0.8876 -3.6750 -0.0010
out = imtransform(rgbsm,T2,'XData',[0 1200],'YData',[-600 800]);
imshow(out);
T2.tdata.T(:,3)
ans =
-0.0003
0.0041
-0.9736
T3 = T2;
theta = 0;
mag = -0.012;
Txy = [1 0 0; 0 1 0; -400 -300 1];
Tproj = [1 0 mag*sin(theta); 0 1 mag*cos(theta); 0 0 1];
T3.tdata.T = Txy*Tproj;
T3.tdata.Tinv = inv(T3.tdata.T);
[out XData YData] = imtransform(rgbsm,T3);
imshow(out);
floor(XData)
floor(YData)
ans =
-442 464
ans =
-114 9
out = imtransform(rgbsm,T3,'XData',[-3000 3000],'YData',[-200 3000]);
imshow(out);
Txy = [1 0 0; 0 1 0; -400 -300 1];
Tscl = [1/400 0 0; 0 1/400 0; 0 0 1];
mag = -0.8;
theta = 0;
Tproj = [1 0 mag*sin(theta); 0 1 mag*cos(theta); 0 0 1];
Tm = Txy*Tscl*Tproj;
inpts = [x y ones(8,1)];
outpts = inpts*Tm;
xp = outpts(:,1)./outpts(:,3);
yp = outpts(:,2)./outpts(:,3);
v1 = [xp(2)-xp(1) yp(2)-yp(1)];
v2 = [xp(8)-xp(7) yp(8)-yp(7)];
xr = sqrt(v1(1)^2+v2(1)^2)
v1 = v1/norm(v1);
v2 = v2/norm(v2);
cross = det([v1;v2])
plot(xp(1:2),yp(1:2),'g','LineWidth',2);
axis ij
grid
hold on
plot(xp(3:4),yp(3:4),'r','LineWidth',2);
plot(xp(5:6),yp(5:6),'r','LineWidth',2);
plot(xp(7:8),yp(7:8),'g','LineWidth',2);
hold off
xr =
2.3231
cross =
-0.9824
Txy = [1 0 0; 0 1 0; -400 -300 1];
Tscl = [1/400 0 0; 0 1/400 0; 0 0 1];
xv = linspace(-1.193,-1.192,51);
for k=1:51
mag = xv(k);
theta = -0.18;
Tproj = [1 0 mag*sin(theta); 0 1 mag*cos(theta); 0 0 1];
Tm = Txy*Tscl*Tproj;
inpts = [x y ones(8,1)];
outpts = inpts*Tm;
xp = outpts(:,1)./outpts(:,3);
yp = outpts(:,2)./outpts(:,3);
v1 = [xp(2)-xp(1) yp(2)-yp(1)];
v2 = [xp(8)-xp(7) yp(8)-yp(7)];
v1 = v1/norm(v1);
v2 = v2/norm(v2);
yv(k) = det([v1;v2]);
end
plot(xv,yv);