2012-12-12 34 views
0

當我使用pylab和Python Linux下繪製和顯示圖像,就像在下面的例子中的位置和大小:如何改變pylab創建的圖像

img = pylab.imread(filename) 
pylab.imshow(img) 
pylab.show() 
pylab.draw() 

當我這樣做,一個新的窗口彈出圖像。

我的問題:我如何影響位置和大小?

+1

你的子集意味着旋轉圖像,但是你的文本暗示着窗口的位置......? –

+0

標題固定。感謝您指出。 – Alex

+1

我還是不明白這裏的問題。你想選擇一個窗口的大小和位置,並讓它適當地縮放到這個尺寸?如果是這樣,我真的認爲'pylab'不適合你的環境;你想使用一個真正的GUI框架。 – abarnert

回答

1

pylab的圖像東西的全部點是,你得到一個np.array的像素數據。

所以,你可以這樣做:

img = pylab.imread(filename) 
img = img * myTransformationMatrix 
pylab.imshow(img) 

如果馬上告訴你,你需要知道,偉大的東西。如果您不明白矩陣乘法與旋轉,平移和縮放圖像有什麼關係,pylab可能不是您想要使用的圖像庫。只需使用PIL。

如果你想操作窗口,而不是圖像,pylab真的不意味着這一點。

您可能想要使用TkInter,這是Python內置的窗口庫。它可能是醜陋,笨重和緩慢的,一些高級用途要麼是不可能的,要麼是你編寫Tcl代碼而不是Python ......但對於簡單的東西,它不會是從pylab下降的。事實上,這就是pylab所使用的內容。

如果您開始達到TkInter的限制,現在該查看外部窗口庫。您可以使用完整的GUI框架,如Gtk +,Qt或wx。與三者的Python綁定沒有那麼不同;最重要的區別在於,在圖形用戶界面的工作方式略有不同的模型中,閱讀它們並選擇最適合您的模型。或者,你可以使用類似pygame的東西,它可以非常簡單地開窗(遊戲需要的東西,而不是文字處理器)。

+0

正如你可能已經注意到的那樣,這個問題的題目是不正確的。但我正要找出如何旋轉圖像,所以你的答案是非常感謝!因爲我只想在二維平面內旋轉90度左右,所以我可能不需要旋轉矩陣的歐拉角... – Alex

+0

@Alex:如果您嘗試更改圖像本身的位置和大小,它仍然是矩陣數學。如果你想改變你桌面上的_window_的位置,那是完全不同的事情,這實際上並不是'pylab'的意圖。 – abarnert

+0

是的,恐怕這是我想影響的窗口。因此提到Linux作爲操作系統。 – Alex