日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

线性直接变换方法对摄像机进行标定

發布時間:2023/12/10 编程问答 21 豆豆
生活随笔 收集整理的這篇文章主要介紹了 线性直接变换方法对摄像机进行标定 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

?具體實現過程如下:

1.從不同角度用攝像機對立方體盒子進行拍攝,得到一幅圖像。如下:

?

2.在立方體盒子上選取至少6個點,獲取這6個點的圖像坐標和空間點坐標(世界坐標系自己設定)。如:

7 %點個數

0 0 0%空間點的世界坐標

0 0 48

50 0 0

0 59 0

0 59 48

50 0 48

50 59 48

?

1538 1619%空間點對應的圖像坐標

1533 1012

1749 1244

814 1414

730 855

1771 707

1077 603

3.編程計算攝像機矩陣CM,完成標定。(Matlab實現的)

代碼如下:

clc

% 打開文件

fid_l=fopen('C:\Documents and Settings\duan\桌面\我的工作\inputdata_l.txt','r');

% 點的數目

tem_l =fscanf(fid_l,'%i',1);

var_l =tem_l;

% 空間點集

WPoint_l = zeros(var_l,3);

% 圖像點集

CPoint_l = zeros(var_l,2);

A_l = zeros(2*var_l,11);

for i = 1:1:var_l

?? ?[A_l,count_l]=fscanf(fid_l,'%f %f %f',[1,3]);

?? ?WPoint_l(i,1)=A_l(1);

?? ?WPoint_l(i,2)=A_l(2);

?? ?WPoint_l(i,3)=A_l(3);

end

for i = 1:1:var_l

?? ?[A_l,count_l]=fscanf(fid_l,'%f %f',[1,2]);

?? ?CPoint_l(i,1)=A_l(1);

?? ?CPoint_l(i,2)=A_l(2);

end

fclose(fid_l);

WPoint_l;

CPoint_l;

for i =1:1:var_l

?? ?m = 2*(i-1)+1;

?? ?n = 2*i;

?? ?A_l(m,1) = WPoint_l(i,1);

?? ?A_l(m,2) = WPoint_l(i,2);

?? ?A_l(m,3) = WPoint_l(i,3);

?? ?A_l(m,4) = 1;

?? ?A_l(m,5) = 0;

?? ?A_l(m,6) = 0;

?? ?A_l(m,7) = 0;

?? ?A_l(m,8) = 0;

?? ?A_l(m,9) ?= -WPoint_l(i,1)*CPoint_l(i,1);

?? ?A_l(m,10) = -WPoint_l(i,2)*CPoint_l(i,1);

?? ?A_l(m,11) = -WPoint_l(i,3)*CPoint_l(i,1);

?? ?A_l(n,1) ?= 0;

?? ?A_l(n,2) ?= 0;

?? ?A_l(n,3) ?= 0;

?? ?A_l(n,4) ?= 0;

?? ?A_l(n,5) ?= WPoint_l(i,1);

?? ?A_l(n,6) ?= WPoint_l(i,2);

?? ?A_l(n,7) ?= WPoint_l(i,3);

?? ?A_l(n,8) ?= 1;

?? ?A_l(n,9) ?= -WPoint_l(i,1)*CPoint_l(i,2);

?? ?A_l(n,10) = -WPoint_l(i,2)*CPoint_l(i,2);

?? ?A_l(n,11) = -WPoint_l(i,3)*CPoint_l(i,2);

end

?

?B_l = zeros(2*var_l,1);

?for i = 1:1:var_l

?? ? B_l(2*(i-1) + 1) = CPoint_l(i,1);

?? ? B_l(2*i) = CPoint_l(i,2);

?end

% ?A_l

% ?B_l

?p = A_l\B_l;

?p1 = [p;1.0];

?p1 = reshape(p1,4,3);

?CM_l = p1';

?%CM_l 即為要求的左攝像機矩陣

?CM_l ? ? ?

?

?

?

%這段代碼的作用是驗證所求的攝像機矩陣的正確性

% ?c =[30;-30;0;1];

% ?t =CM_l*c

% ?t(1)=t(1)/t(3);

% ?t(2)=t(2)/t(3);

% ?t(3)=t(3)/t(3);

% ?t

?

% 打開文件

fid_r = fopen('C:\Documents and Settings\duan\桌面\我的工作\inputdata_r.txt','r');

% 點的數目

tem_r = fscanf(fid_r,'%i',1);

var_r = tem_r;

% 空間點集

WPoint_r = zeros(var_r,3);

% 圖像點集

CPoint_r = zeros(var_r,2);

A_r = zeros(2*var_r,11);

for i = 1:1:var_r

?? ?[A_r,count_r] = fscanf(fid_r,'%f %f %f',[1,3]);

?? ?WPoint_r(i,1) = A_r(1);

?? ?WPoint_r(i,2) = A_r(2);

?? ?WPoint_r(i,3) = A_r(3);

end

for i = 1:1:var_r

?? ?[A_r,count_r] = fscanf(fid_r,'%f %f',[1,2]);

?? ?CPoint_r(i,1) = A_r(1);

?? ?CPoint_r(i,2) = A_r(2);

end

fclose(fid_r);

WPoint_r;

CPoint_r;

for i =1:1:var_r

?? ?m = 2*(i-1)+1;

?? ?n = 2*i;

?? ?A_r(m,1) = WPoint_r(i,1);

?? ?A_r(m,2) = WPoint_r(i,2);

?? ?A_r(m,3) = WPoint_r(i,3);

?? ?A_r(m,4) = 1;

?? ?A_r(m,5) = 0;

?? ?A_r(m,6) = 0;

?? ?A_r(m,7) = 0;

?? ?A_r(m,8) = 0;

?? ?A_r(m,9) ?= -WPoint_r(i,1)*CPoint_r(i,1);

?? ?A_r(m,10) = -WPoint_r(i,2)*CPoint_r(i,1);

?? ?A_r(m,11) = -WPoint_r(i,3)*CPoint_r(i,1);

?? ?A_r(n,1) = 0;

?? ?A_r(n,2) = 0;

?? ?A_r(n,3) = 0;

?? ?A_r(n,4) = 0;

?? ?A_r(n,5) = WPoint_r(i,1);

?? ?A_r(n,6) = WPoint_r(i,2);

?? ?A_r(n,7) = WPoint_r(i,3);

?? ?A_r(n,8) = 1;

?? ?A_r(n,9) ?= -WPoint_r(i,1)*CPoint_r(i,2);

?? ?A_r(n,10) = -WPoint_r(i,2)*CPoint_r(i,2);

?? ?A_r(n,11) = -WPoint_r(i,3)*CPoint_r(i,2);

end

?

?B_r = zeros(2*var_r,1);

?for i = 1:1:var_r

?? ? B_r(2*(i-1) + 1) = CPoint_r(i,1);

?? ? B_r(2*i) = CPoint_r(i,2);

?end

% ?A_r

% ?B_r

?p = A_r\B_r;

?p1 = [p;1.0];

?p1 = reshape(p1,4,3);

?CM_r = p1';

?%CM_r 即為要求的右攝像機矩陣

?CM_r

?

?

%這段代碼的作用是驗證所求的攝像機矩陣的正確性

?c =[30;0;0;1];

?t =CM_r*c;

?t(1)=t(1)/t(3);

?t(2)=t(2)/t(3);

?t(3)=t(3)/t(3);

?t

CM即為所求攝像機矩陣,也就完成了攝像機的標定過程。

?

轉載于:https://blog.51cto.com/19870404/388148

總結

以上是生活随笔為你收集整理的线性直接变换方法对摄像机进行标定的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。