The Ricoh Theta S
camera produces equirectangular jpeg images of size 5376 x 2688 pixels. Since
the camera simply hangs upside-down from the kite string, the resulting
equirectangular images are not only upside-down (i.e. the sky is down), but
the horizon is also wavy because the camera swings quite freely. A sample
image from the camera is shown below.
In order to straighten the horizon and rotate it upside down we
wrote a small code in python. Our python code uses
pyEquirectRotate which can apply yaw, pitch, or roll to an
equirectangular image based on the convention shown below:
Based on these tools/conventions, the process for straightening out the photos is as follows:
(1) Whatever be the orientation of the camera, first apply a
'yaw' such that either the lowest or the highest point of the wavy horizon
is on the central meridian.
(2) Then apply a 'pitch' such that the horizon on the central meridian is
now on the equator as well.
(3) Rotate the image 180 degree.
Our code is available here.
The above process should technically straighten out the horizon. However in real life some
waviness still remains occasionally, which is likely due to imperfection in
stitching/blending together the two individual fisheye images. The image from above,
when straightened using this process outlined above, results in the image shown
below:
|