Image transformer
This page shows some transformed images. The transformation takes a rectangular image and changes it into polar coordinates.
Here are some "before" and "after" images of the transformer at work!
Trees
| Before | After |
|
|
|
Sunset
| Before | After |
|
|
|
Lightning
| Before | After |
|
|
|
Lake
| Before | After |
|
|
|
Bruges
| Before | After |
|
|
|
Los Angeles
| Before | After |
|
|
|
HMS Belfast
| Before | After |
|
|
|
Stonehenge
| Before | After |
|
|
|
Southwark Bridge
| Before | After |
|
|
|
San Diego
| Before | After |
|
|
|
London
| Before | After |
|
|
|
London
| Before | After |
|
|
|
New Jersey
| Before | After |
|
|
|
Palm trees
| Before | After |
|
|
|
Giraffes
| Before | After |
|
|
|
Angel of the North
| Before | After |
|
|
|
Botanique, Brussels
| Before | After |
|
|
|
Lake Geneva
| Before | After |
|
|
|
M&Ms store, London
| Before | After |
|
|
|
Palace of Fine Arts
| Before | After |
|
|
|
Belgrade church
| Before | After |
|
|
|
Trams
| Before | After |
|
|
|
Rue Royale
| Before | After |
|
|
|
Roof of Saint Marie
| Before | After |
|
|
|
Office building
| Before | After |
|
|
|
Saints
| Before | After |
|
|
|
St Pancras
| Before | After |
|
|
|
Gallery
| Before | After |
|
|
|
Roof
| Before | After |
|
|
|
CERN stairs
| Before | After |
|
|
|
Tangles
| Before | After |
|
|
|
Antwerp station
| Before | After |
|
|
|
Antwerp station
| Before | After |
|
|
|
The transformation
The transformation is actually a little more complicated than you might expect. Each pixel in the target image is mapped to a pixel from the source image according to:
\[ X = w \arctan\left(\frac{\sqrt{2}x-h}{\sqrt{2}y-h}\right) \] \[ Y = \frac{h-\sqrt{(\sqrt{2}x-h)^2+(\sqrt{2}y-h)^2}}{h}\arctan\left(\frac{\sqrt{2}x-h}{\sqrt{2}y-h}\right) \]where \((X,Y)\) is the coordinate in the source image, \((x,y)\) is the coordinate in the target image and \(w\) and \(h\) are the width and height of the source image. Here is what the transformation looks like when applied to rectangular coordinates:
make_gallery_table('Grid', 'grid') ;