2011-12-21 16 views
1

我正在爲Android製作基於相機的應用程序。我的問題,就是要找到一個物體的圖像在對向的實際角度,相機,當我有:物體對着的角度與像素數量之間的關係

1.長度的圖像中的對象,以像素爲單位的,

2。相機的垂直視角,

3.圖像的長度,以像素爲單位。

作爲圖像處理新手,我有這個(可能是基本的)懷疑。物體在物體上所對的角度與物體圖像中像素的數量之間是否存在線性關係?角度對齊:將對象的最高點加入相機,然後將最低點對象加入相機。相機形成的角度是對角線。例如:考慮垂直圖像,高度爲200像素。相機的垂直視角假設爲20度。所以,我可以說,這20度涵蓋了200像素的圖像。現在,有一部分圖像(一個對象),其高度爲10像素。我想在物理世界中找到相機上對象所對的角度。我是否正確地告訴說,由於200個像素被20度覆蓋,10個像素將被覆蓋1度?也就是說,這個物體在攝像機上的角度是1度。

enter image description here

如該圖所示,我知道L(圖像),P(在圖像對象的)中,x(的視相機的垂直角度)的值,並且我想找到ÿ ,相機上物體所對的角度。我的假設是(y/P)=(x/L),這是成正比的。這個假設是否正確?

回答

1

繪製水平線。它的長度D是距離物體的距離。

d * TG(X/2)= L/2

d * TG(Y/2)= P/2

所以

Y = 2 * Arctg(TG(X/2)* P/L)

(當角度是小的,它們是(粗糙)成正比)

增加:非中心對象的情況。

enter image description here

P0,P1 - 對象的像素座標結束相對於中心點d

距離dx = | OD | = L * CTG(X/2)

座標d =(DX,0)

Y =角度(OP1,OP0)= ARCCOS((OP1 X OP0)/ (| OP1 | * | OP0 |)),其中x表示標量積

Y = ARCCOS((DX * DX + P1 * P0)/ SQRT((DX * DX + P1 * P1)(Dx Dx + P0 * P0)))

示例: L = L1-L0 = 768個像素

X = 42度

DX = 1000(粗糙)

P1位置= 100個像素

P0位置= - ((1000 * 1000-100 * 50)/(Sqrt((1000 * 1000 + 100 * 100)*(1000 * 1000 + 50 * 50))))= 7度(粗糙)

+0

此外,只有當您假定物體相對於光軸垂直居中時(如圖中所示),這才起作用。如果不是,那麼你需要更多的信息來計算'y'。 – 2011-12-21 06:09:00

+0

好的,當你說X/2和Y/2時,假設水平線平分了角度。是的,如果圖像是垂直居中的,那隻會是真的,這不是必須的。實際上,上圖中的對稱只是一個巧合。該對象不需要垂直居中。所以,當它不是垂直居中時,我需要更多的數據來計算Y? – 2011-12-21 06:33:45

+0

圖像和物體是否在與光學斧垂直的平面上? – MBo 2011-12-21 10:30:52

相關問題