📄 vpoint.m
字号:
clc
%计算两幅图像上的6对消影点,仿射重构只需要3对
%第一副图像上的第一个物体
%平行线18和27的交点(与45和36的交点相同),方向1
vp111827=vanishpoint(x11(:,1),x11(:,8),x11(:,2),x11(:,7));
vp114536=vanishpoint(x11(:,4),x11(:,5),x11(:,3),x11(:,6));
figure
hold on
title('第一副图像上的消影点');
plot3(vp111827(1),vp111827(2),vp111827(3),'r.');
text(vp111827(1),vp111827(2),vp111827(3),'消影点1');
%平行线12和87的交点(与43和56的交点相同),方向2
vp111287=vanishpoint(x11(:,1),x11(:,2),x11(:,8),x11(:,7));
vp114356=vanishpoint(x11(:,4),x11(:,3),x11(:,5),x11(:,6));
plot3(vp111287(1),vp111287(2),vp111287(3),'r.');
text(vp111287(1),vp111287(2),vp111287(3),'消影点2');
%平行线41和58的交点(与32和67的交点相同),方向3
vp114158=vanishpoint(x11(:,4),x11(:,1),x11(:,5),x11(:,8));
vp113267=vanishpoint(x11(:,3),x11(:,2),x11(:,6),x11(:,7));
plot3(vp114158(1),vp114158(2),vp114158(3),'r.');
text(vp114158(1),vp114158(2),vp114158(3),'消影点3');
%第一副图像上的第二个物体
%平行线18和27的交点(与45和36的交点相同),方向1
vp121827=vanishpoint(x12(:,1),x12(:,8),x12(:,2),x12(:,7));
vp124536=vanishpoint(x12(:,4),x12(:,5),x12(:,3),x12(:,6));
plot3(vp121827(1),vp121827(2),vp121827(3),'r.');
text(vp121827(1),vp121827(2),vp121827(3),'消影点4');
%平行线12和87的交点(与43和56的交点相同),方向2
vp121287=vanishpoint(x12(:,1),x12(:,2),x12(:,8),x12(:,7));
vp124356=vanishpoint(x12(:,4),x12(:,3),x12(:,5),x12(:,6));
plot3(vp121287(1),vp121287(2),vp121287(3),'r.');
text(vp121287(1),vp121287(2),vp121287(3),'消影点5');
%平行线41和58的交点(与32和67的交点相同),方向3
vp124158=vanishpoint(x12(:,4),x12(:,1),x12(:,5),x12(:,8));
vp123267=vanishpoint(x12(:,3),x12(:,2),x12(:,6),x12(:,7));
plot3(vp124158(1),vp124158(2),vp124158(3),'r.');
text(vp124158(1),vp124158(2),vp124158(3),'消影点6');
hold off
%第二副图像
%第二副图像上的第一个物体
%平行线18和27的交点(与45和36的交点相同),方向1
vp211827=vanishpoint(x21(:,1),x21(:,8),x21(:,2),x21(:,7));
vp214536=vanishpoint(x21(:,4),x21(:,5),x21(:,3),x21(:,6));
figure
hold on
title('第二副图像上的消影点');
plot3(vp211827(1),vp211827(2),vp211827(3),'r.');
text(vp211827(1),vp211827(2),vp211827(3),'消影点1');
%平行线12和87的交点(与43和56的交点相同),方向2
vp211287=vanishpoint(x21(:,1),x21(:,2),x21(:,8),x21(:,7));
vp214356=vanishpoint(x21(:,4),x21(:,3),x21(:,5),x21(:,6));
plot3(vp211287(1),vp211287(2),vp211287(3),'r.');
text(vp211287(1),vp211287(2),vp211287(3),'消影点2');
%平行线41和58的交点(与32和67的交点相同),方向3
vp214158=vanishpoint(x21(:,4),x21(:,1),x21(:,5),x21(:,8));
vp213267=vanishpoint(x21(:,3),x21(:,2),x21(:,6),x21(:,7));
plot3(vp214158(1),vp214158(2),vp214158(3),'r.');
text(vp214158(1),vp214158(2),vp214158(3),'消影点3');
%第二副图像上的第二个物体
%平行线18和27的交点(与45和36的交点相同),方向1
vp221827=vanishpoint(x22(:,1),x22(:,8),x22(:,2),x22(:,7));
vp224536=vanishpoint(x22(:,4),x22(:,5),x22(:,3),x22(:,6));
plot3(vp221827(1),vp221827(2),vp221827(3),'r.');
text(vp221827(1),vp221827(2),vp221827(3),'消影点4');
%平行线12和87的交点(与43和56的交点相同),方向2
vp221287=vanishpoint(x22(:,1),x22(:,2),x22(:,8),x22(:,7));
vp224356=vanishpoint(x22(:,4),x22(:,3),x22(:,5),x22(:,6));
plot3(vp221287(1),vp221287(2),vp221287(3),'r.');
text(vp221287(1),vp221287(2),vp221287(3),'消影点5');
%平行线41和58的交点(与32和67的交点相同),方向3
vp224158=vanishpoint(x22(:,4),x22(:,1),x22(:,5),x22(:,8));
vp223267=vanishpoint(x22(:,3),x22(:,2),x22(:,6),x22(:,7));
plot3(vp224158(1),vp224158(2),vp224158(3),'r.');
text(vp224158(1),vp224158(2),vp224158(3),'消影点6');
hold off
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -