In this homework, we will create a cylindrical image out of the set of images made by a camera while (approximately) preserving the camera projection center. This cylindrical image is also called panorama (originates from Greek, combining “pan” (πᾶν), meaning “all,” and “horama” (ὅραμα), meaning “view” or “sight”). The mathematical description of panorama can be found here.
Consider the images were captured with the following EXIF info (focal length is in milimeters):
| Tag | Name | Value |
|---|---|---|
| 0xa002 | ExifImageWidth | 2400 |
| 0xa003 | ExifImageHeight | 1800 |
| 0xa20e | FocalPlaneXResolution | 2160000/225 |
| 0xa20f | FocalPlaneYResolution | 1611200/168 |
| 0xa210 | FocalPlaneResolutionUnit | inch |
| 0x920a | FocalLength | 7400/1000 |
The images were then resized.
i-j, the points in the image i are in U[i-1,j-1] (python) or U{i,j} (matlab) and in the image j are in U[j-1,i-1] or U{j,i}.
H_ij for every pair of adjacent images by the same method (optimizing 4 over 10) as in HW-05; use your u2h_optim function for each homography.
06_errors.pdf.
H_i4 for every i ∈ <1,7> that maps the images above into the reference image 04 (thus H_44 is identity). Also construct inverse homographies H_4i.
06_borders.pdf.
06_panorama.png.
K using the actual image size and the original EXIF. All the images share the same calibration. Store it in 06_data.mat
06_borders_c.pdf).
06_panorama_c.png).
Upload an archive consisting of:
06_data.mat
06_histograms.pdf
06_borders.pdf
06_panorama.png
06_borders_c.pdf
06_panorama_c.png
hw06.m or hw06.py script solving the task, and any other files needed by the script