2012-10-24 3 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

대략적인 각도를 측정하려면 파노라마의 카메라의 아래쪽 테두리를 위쪽으로 돌린 다음 회전 매트릭스 및 방향 값 delta (l.)을 검색하면됩니다. 각도 - 각도). getVerticalViewAngle은 값이 카메라의 해상도와 관련되어 있기 때문에 모든 것을 올바르게 처리합니다. 그래서 파노라마를 측정했을 때 높이와 값이 너무 컸던 것처럼 보였습니다. 디스플레이에 카메라가 제공하는 모든 것을 렌더링 할 수있는 충분한 픽셀이 없기 때문에 전체 화면을 볼 수 없었습니다. . 그러나 가정입니다. – midnight

+0

나는 당신이 벽에 알려진 물건의 높이를 비교하고 있다고 생각했습니다. 그러나 전체 그림을보고 있다면 카메라가 16 : 9 (또는 더 정확하게는 800x480) 미리보기를 지원하는 트릭에 직면하게됩니다. 위의 게시물 (http://stackoverflow.com/questions/3261776/determine-angle-of-view-of-smartphone-camera)에 설명 된대로 많은 카메라가 4 : 3 센서를 사용하여 세로로 결과를 자릅니다 . –