資源簡介
利用八點法求兩幅圖像之間的基礎矩陣,并繪制對極線。先將自己要求對極線的兩張圖片放置解壓后的根目錄,運行selectpoints函數,運行完之后會保存需要的八組點,然后運行main即可。

代碼片段和文件信息
function?main()
clear
load?location;
location1=location{11};
location2=location{12};
F=Draw_Epipolar_Line(location1location2)
A2=imread(‘2.jpg‘);
B2=imread(‘3.jpg‘);
h=size(B21);?????????????????????????????????????????????????????????%image1的行數
w=size(B22);?????????????????????????????????????????????????????????%image1的列數
npoints=5000;
figure(1)
imshow(A2);
[loc1xloc1y]=ginput(1);
close(gcf);
figure(2)
imshow(B2);
[loc2xloc2y]=ginput(1);
close(gcf);
m1=[loc1xloc1y1];
m2=[loc2xloc2y1];
l2=F*m1‘;????????????????????????%點m1在image2中的對極線
l1=F‘*m2‘;
%?用于產生1w之間的npoints點行矢量,其中1、w、npoints分別為起始值、終止值、元素個數
xx1?=?linspace(1wnpoints);?
%?產生1行,npoints列?數值為1的行向量
cc1=ones(1npoints);??
%?求取縱坐標yy2
yy1=(-l1(1)*xx1-l1(3)*cc1)/l1(2);?
%?用于產生1w之間的npoints點行矢量,其中1、w、npoints分別為起始值、終止值、元素個數
xx2?=?linspace(1wnpoints);?
%?產生1行,npoints列?數值為1的行向量
cc2=ones(1npoints);??
%?求取縱坐標yy2
yy2=(-l2(1)*xx2-l2(3)*cc2)/l2(2);??
figure(3)
imshow(A2);
yyy1=yy1(yy1>0&yy1 xxx1=xx1(yy1>0&yy1 hold?on
plot(xxx1yyy1‘r.‘‘MarkerSize‘10);%‘MarkerSize‘100
hold?on
plot(loc1xloc1y‘g*‘‘MarkerSize‘20);
hold?on
plot(location1.xlocation1.y‘r*‘‘MarkerSize‘20);
hold?off
figure(4)
imshow(B2);
%?為防止對極線算出的坐標有負的??下面兩行代碼是進行越界處理的
yyy2=yy2(yy2>0&yy2 xxx2=xx2(yy2>0&yy2 hold?on
plot(xxx2yyy2‘r.‘‘MarkerSize‘10);%‘MarkerSize‘100
hold?on
plot(loc2xloc2y‘g*‘‘MarkerSize‘20);
hold?on
plot(location2.xlocation2.y‘r*‘‘MarkerSize‘20);
hold?off
function?F=Draw_Epipolar_Line(location1location2)
%?八點法繪制對極線
%?畫出的對極線不是很精確
%?下面得到矩陣A
AAA=[];
for?i=1:8
????aa=[?location2.x(i)*location1.x(i)??location2.x(i)*location1.y(i)??location2.x(i)??...
????????????location2.y(i)*location1.x(i)??location2.y(i)*location1.y(i)??location2.y(i)??...
????????????location1.x(i)?location1.y(i)?1??];
??????AAA=cat(1AAAaa);
end
[~~V]=svd(AAA);
TEMP=V(:9);
F=reshape(TEMP33);?????????????????%?得到基礎矩陣F
F=F‘;
%?對于對極線??可設其為l=ax+by+c,上面的F*m得到的l是一個3*1的向量
%?,其中的元素一次表示a?b?c,這個可以參照?吳昊?碩士論文《基礎矩陣估
%?計方法研究》中的13頁
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????文件????????513??2017-04-28?19:51??SelectPoints.m
?????文件???????2360??2017-04-28?19:51??main.m
-----------?---------??----------?-----??----
?????????????????2873????????????????????2
- 上一篇:matlab求取二維數組極大值與極小值
- 下一篇:FLICM圖像分割算法
評論
共有 條評論