Revision 1269631b4ee13eb2336b41007e52af5243f60d86 (click the page title to view the current version)

Distorted Space

Changes from 1269631b4ee13eb2336b41007e52af5243f60d86 to current

---
title: Distorted Space
categories: session
---

**Briefing** [Distorted Lecture]()

**Additional Reading**
Chapter 9 in  *OpenCV 3 Computer Vision with Python Cookbook* by
Alexey Spizhevoy (author).
Search for it in [Oria](https://oria.no/).
There is an e-book available.

# Exercises

## An Example of a Distorted spaceo
## An Example of a Distorted space

### Step 1.  Preliminaries.

1.  Consider a triangle in the object space, formed by the three
    vertices, $A=(0,0,10)$, $B=(20,0,10)$, and $(20,10,10)$.  
    vertices, $A=(0,0,10)$, $B=(20,0,10)$, and $C=(20,10,10)$.  
    Let 
    + $\alpha$ be the angle between the vectors $\overrightarrow{AB}$ 
      and $\overrightarrow{AC}$.
    + $\beta$ be the angle between the vectors $\overrightarrow{BA}$ 
      and $\overrightarrow{BC}$.
    Draw a figure to show this information.
2.  Calculate the angle $\alpha$.
    **Draw** a figure to show this information.
2.  **Calculate** the angles $\alpha$ and $\beta$.
3.  Consider an ideal perspective camera, posed such that the camera
    frame matches the world frame.  Calculate the image points
    corresponding to $A$, $B$, and $C$.  Draw an image to display 
    this projection.
4.  Calculate the angles in the images of $\alpha$ and $\beta$.
    Recall the formula for the angle $\theta$ between two vectors
    $u$ and $v$
    $$\theta = \tan^{-1}\frac{u\cdot v}{||u||\cdot||v||}.$$
    (This is found in any elementary calculus book.)
    frame matches the world frame.  
    **Calculate** the image points corresponding to $A$, $B$, and $C$.
    Assume that the image plane has $z=1$.
    **Draw** an image to display this projection.
4.  **Calculate** the angles $\alpha'$ and $\beta'$
    in the image, corresponding to $\alpha$ and $\beta$.
    Do they match the original angles?
5.  Calculate the lengths of the edges of the triangles in the image.
6.  Make a new drawing to display the quantities calculated in 4 and 5.
5.  **Calculate** the lengths of the edges of the triangles in the image.
6.  Make a new drawing of the image plane,
    displaying the quantities calculated in 4 and 5.
    Keep it for later reference.

Recall the formula for the angle $\theta$ between two vectors
$u$ and $v$
$$\theta = \cos^{-1}\frac{u\cdot v}{||u||\cdot||v||}.$$
This is found in any elementary calculus book.
You did not need this above, because the triangles had an orthogonal
angle, but you will need it below.

### Step 2.  Distortion.

7.  Suppose the camera is not idea, but instead has calibration matrix
    $$K = 
    \begin{bmatrix}
    2 & \frac1{\sqrt{3}} & 4 \\ 0 & 1 & 4 \\ 0 & 0 & 1
    \end{bmatrix}$$
8.  Calculate the image points corresponding to $A$, $B$, and $C$,
Suppose the camera is not ideal, but instead has calibration matrix
$$K = 
\begin{bmatrix}
2 & \frac1{\sqrt{3}} & 4 \\ 0 & 1 & 4 \\ 0 & 0 & 1
\end{bmatrix}$$

7.  **Calculate** the image points corresponding to $A$, $B$, and $C$,
    using the camera calibration matrix $K$.
    Draw the resulting image to scale. 
9.  Calculate the lengths of the edges of the image of the triangle.
    (See Ma 2004:55)
8.  **Draw** the resulting image to scale. 
9.  **Calculate** the lengths of the edges of the image of the triangle.
    For now, we use the familiar formulæ for vector norms.
10. Let $\alpha'$ and $\beta'$ be the images of the angles $\alpha$
    and $\beta$.
    Calculate these to image angles and add the information to you figure.
    **Calculate** these to image angles and add the information to you figure.
11. Compare your distorted image to the original image from Step 1.

### Step 3.  The Distorted Inner Product Space

Recall the textbook's definition of an inner product in distorted space
$$\langle u,v\rangle_S = u^TSv \quad\text{where } S = K^{-T}K^{-1},$$
for some `camera calibration' matrix $K$.
We are going to redo Step 2, using this distorted inner product.

12. (9) Calculate the edges (norms) of the triangle, using the
12. [9] Calculate the edges (norms) of the triangle, using the
    distorted inner product to define the norm.
13. (10) Calculate the angles $\alpha'$ and $\beta'$, using
13. [10] Calculate the angles $\alpha'$ and $\beta'$, using
    the distorted inner product and the formula
    $$\theta = \tan^{-1}\frac{u\cdot v}{||u||\cdot||v||}.$$
    $$\theta = \cos^{-1}\frac{u\cdot v}{||u||\cdot||v||}.$$
14. Make a figure illustrating the quantities calculated.
15. (11) Compare the edges and angles thus calculated with the
15. [11] Compare the edges and angles thus calculated with the
    calculations from Step 2 and from Step 1.  
    Reflect on your observations.

### Step 4.  Reflection

Think through the following:

16. What does this exercise tell you about camera distortion and
    inner product spaces?
17. Is there anything you do not quite understand?
    Is there something missing in the exercise, something that should
    have been tested?

## From the Textbook

+ Exercise 6.4

# Debrief


+ [Step 1](Solutions/distorted-step1.pdf)
+ [Step 2(7-10)](Solutions/distorted-step2.pdf)
+ Step 2(11)
    + Note how the $x$-axis is stretched, doubling the length of $AB$.
    + Not also how it is skewed, bending the angle $\beta'$ from
      $90°$ to $120°$.
+ Step 3(11)
    + [Sample python code](Python/distorted.py)
    + Inverting matrices by hand is usually not time well invested,
      hence the python code.  It is possible though, and for some
      it may be quicker.