2012-10-24 182 views
0

我想使用相機在牆上投影圖像。實際上,圖像必須根據相機與牆壁之間的距離進行縮放。相機:圖像投影

首先,我使用直角三角法(visionHeight * Math.tan(a))進行距離計算。這不是100%準確,但接近實際價值。其次,知道距離我們可以嘗試通過使用等腰三角形三角公式計算出所有的全景高度:c = a * tan(A); A = mCamera.getParameters().getVerticalViewAngle(); 結果比實際物體高度大30%左右,這有點奇怪。

double panoramaHeight = (distance * Math.tan(mCamera.getParameters().getVerticalViewAngle()/2 * 0.0174532925)) * 2;

我也嘗試使用相同的等腰三角形的公式搞清楚這些角度,但現在知道的距離和高度。我有28度和48度的角度。

這是否意味着安卓相機不會渲染它拍攝的所有內容?而且,您可以建議哪些其他解決方案?

enter image description here

回答

0

網絡搜索顯示,受getVerticalViewAngle()不能盲目信任上的所有設備的返回值;還注意,應考慮到的縮放級別和高寬比,見Determine angle of view of smartphone camera

+0

我通過接通相機的下全景的邊界上,然後簡單地檢索旋轉矩陣和方向值增量(升測量的近似角度。角度 - 角度)。 getVerticalViewAngle可以正確執行所有操作,因爲它的值與相機的分辨率有關 - 不是顯示的。所以,當我測量panoramaHeight和價值似乎太大,其實是正確的 - 我只是無法看到我的屏幕上的整個相機圖片,因爲我的顯示器沒有足夠的像素來渲染所有相機供應 - 所以它只是簡單地剪切圖像。然而,這是一個假設。 – midnight

+0

我以爲你在比較牆上已知物體的高度。但是,如果您正在查看整幅圖像,則需要面對相機支持16:9(或更精確地說,800x480)預覽的技巧。許多相機,如上文所述(http://stackoverflow.com/questions/3261776/determine-angle-of-view-of-smartphone-camera)中所述,使用4:3傳感器並垂直裁剪結果。 –