I have photo of a room with three walls and floor/ceiling or both. I am trying to reconstruct this room in 3d asking user for minimal input. R开发者_开发知识库ight now I use 8 points defined by user, angles of left and right wall (they can be quite different from 90) and one size "InLeftBottom-InRightBottom" (I need to have real size of this room for later use). I have no info about user's camera (I can read EXIF to get FOV and use constant height but this can be only used as additional info).
Is this possible to ask user for less info? Maybe it's possible to get wall angles without user interaction? Or maybe I am completely wrong and should use different approach?
If you're assuming that the floor and ceiling are parallel, then the lines where a wall meets the ceiling and floor are also parallel. It should be possible to determine FOV based on the difference between the measured angle (of the image--2D) and "parallel" (though I haven't done the math to determine exactly what that might look like).
With that FOV information, and the assumption that the angle where the side-wall meets the floor (or ceiling) is 90-degrees, you should be able to calculate Angle_1 and Angle_2.
If, on the other hand, the ceiling is not guaranteed to be parallel to the floor, you will need the angle between the back wall and the ceiling (assuming the floor is at right angles with each wall).
精彩评论