Get angle of view of android camera device

后端 未结 3 2056
说谎
说谎 2021-02-15 15:08

I want to know the angle of view from the camera, just like in this question but using android.hardware.camera2. How can I reproduce the next code using the new camera2 library.

相关标签:
3条回答
  • 2021-02-15 15:53

    You could do it mathematically.

    Diagram

    You have:

    • L, the width of an object
    • d, the distance to the object

    You want to calculate the angle a (alpha), the field of view.

    Doing some trig:

    tan(a/2) = (L/2)/d
    tan(a/2) = L/2d
    a/2 = atan(L/2d)
    a = 2*atan(L/2d)
    

    You can do that to calculate the horizontal field of view. Good luck!

    0 讨论(0)
  • 2021-02-15 16:03

    As far as my research has gone the answer is no. With the camera2 API there is no call which can give you the vertical and horizontal viewing angle.

    However, you don't need to use the camera2 API to get those values. You can just use the original camera API to get the vertical and horizontal view angle and then use the camera2 API for the rest of the app.

    As far as I know the actual image capture firmware hasn't changed between the camera and camera2 APIs.

    0 讨论(0)
  • 2021-02-15 16:12

    I search the google a person show possibility which he calculate FOV by Camera2 api

    https://photo.stackexchange.com/questions/54054/calculating-the-field-of-view-for-a-nexus-5

    and found the equation

    http://www.bobatkins.com/photography/technical/field_of_view.html

    FOV (rectilinear) = 2 * arctan (frame size/(focal length * 2))

    thus, we need to know frame size and focal length

    the frame size is size of camera you can find the code on below link

    https://stackoverflow.com/a/30403558

    also, focal length you can find below link

    Manual focus in camera2, android

    and i combine the code like this

    A function calculateFOV() calculate FOV angle

    https://github.com/pchan1401-ICIL/Camera2FOV

    0 讨论(0)
提交回复
热议问题