2010-08-25 25 views
2

如何旋轉關於Python中特定像素的圖像?我正試圖去旋轉夜空的一組圖像。由於星星圍繞北極星旋轉,因此我可以將北極星定義爲旋轉中心並旋轉每個圖像以排列恆星。旋轉關於python中特定像素的圖像

+2

一旦你研究出如何旋轉一個特定像素的圖像,你如何以編程方式定義Polaris的位置? – 2010-08-25 22:49:23

+1

北極星不會移動(或移動很小),因此始終位於同一像素上。所以我可以在像素座標中定義它的位置。 – ogsrotag2423 2010-08-25 22:53:18

回答

2

在phadej的回答中,圖像上一個點的舊座標和新座標之間的轉換是affine transformation

PIL(Python Imaging Library)有一個名爲transform的圖像方法,它可以執行圖像的仿射變換。

transform的文檔接近此page的底部。

0

一個小數學:如果每個圖像的像素位置矢量a,和北極星的位置是p,然後新位置new_p

new_p = a + R * (a-p) 

,其中R是Rotation matrix

會出現問題,因爲new_p可能不是一個整數值位置向量。你可以向後做。對於旋轉圖像的每個像素應用上述變換的逆函數,您將從原始圖像中獲取像素。因爲它也可能不是整數,所以可以像wu-pixels那樣對相鄰像素進行採樣(點擴散的量可以用作採樣權重)。

+0

我確定有一些圖書館可以爲你做,但它是很好的編程練習。例如'imagemagick'內置了這種「扭曲」:http://www.imagemagick.org/script/command-line-options.php?ImageMagick=gcvcqder3prdmhc6d8m6gk38v4#distort – phadej 2010-08-25 22:56:20