刚看到铜山贴出的极坐标效果图片,很有特色。试了一下,发现免费的图像处理软件 GIMP 也有这个功能。试着做了一张,效果一般,看来就是使用软件也得有技巧啊。
这个极坐标效果是一个什么样的数学变换呢? 在网上查了一下,找到这个链接,说:【rectangular to polar... it maps the image height to a radial range from 0 to half the images diagonal... and the width to the range 0..2*Pi. The origin is at the centre of the image... 】
根据这个描述,设图片宽为W, 高为H,对角长为 [ix]D= \sqrt{W^2+H^2}[/ix]。笛卡尔坐标的原点是在左角。图中坐标(x,y) 点转换为极坐标 [ix](r,\theta)[/ix]
[ix]\left\{ \begin{array}{rl} r= \frac{y}{H} \frac{D}{2} = \frac{D}{2H} y\\
\theta = \frac{x}{W}2\pi = \frac{2\pi}{W} x
\end{array} \right.[/ix]
可见,这个极坐标变换是把原图中的每一条水平线变成一个圆,所有圆都同心,半径正比于水平线的纵坐标。形象的说,相当于把图像下面缩窄,然后卷成圆圈。照片Y坐标为零的那条横线成为了圆心。那个网页中说“The origin is at the centre of the image”,倒也没错,但是实际是整个水平轴转换为图像中心。原图横坐标相等的转换为角度相同,这说明原图中的竖线将转换为辐线。
下面的示范是我用 GIMP 进行极坐标变形得到的:
上面第一个图转换后红色在圆心是因为在图像处理中,Y坐标是倒的(从上往下),所以图片最上面的那条横线Y坐标为零。
上面的图很清楚的显示:(1)原图的横线转换为圆;(2)原图的竖线转换为辐线。
再转换为笛卡尔坐标,
[ix]x^\prime = r \cos\theta = \frac{D}{2H} y \cos(\frac{2\pi x}{W})\\
y^\prime = r \sin \theta = \frac{D}{2H} y \sin (\frac{2\pi x}{W})
[/ix]
0 < x < W; 0< y < H;
上述变换保持了原图中横线与竖线的角度,但却不是一个 conformal transformation.