2015-09-17 355 views
1

我有一個尺寸爲X:24,Y:24和Z:61397的3D矩陣。 Z對應於幀的數量。當我繪製每一幀時,我會得到一個順時針旋轉45度的圖像。 enter image description here如何旋轉matlab中的3D矩陣

我一直在試圖旋轉矩陣,使圖片可以是直的(它需要旋轉45度逆時針)。

我基於對類似的問題以前的答案試圖乘以下列旋轉矩陣:

% rotation matrix 
theta = pi/4; 
Rot = makehgtform('xrotate',theta); 
Rot = Rot(1:3,1:3); 

我得到了一個錯誤,由於在規模上的差異。我是否需要將旋轉矩陣擴展到24by24?如果是,如何?

+0

如果您在網絡上的某個地方發佈圖片並添加問題鏈接,則會有人爲您添加該圖片。你有圖像處理工具箱嗎?如果是這樣,那麼@ lhcgeneva的答案比你想要做的要容易得多。如果沒有,請閱讀重複的帖子並理解它。 'makehgtform'不是你想要做的最好的選擇,我想你想圍繞z軸旋轉而不是x。 – beaker

+0

@beaker Here's the image: https://www.dropbox.com/s/yelu7jgcup3m4do/frame100..jpg?dl=0 – Rajab

+0

其實,輪換不是我的主要興趣。在以下鏈接中的圖像: https://www.dropbox.com/s/yelu7jgcup3m4do/frame100..jpg?dl=0 表示空隙率[0-1]的值,顏色對應於空氣和液體。我需要計算浸入液體中的像素數量以獲得液位。這就是爲什麼我需要旋轉圖像,使液位與X軸平行。圖像是24×24像素,與測量點相對應。 – Rajab

回答

1

如果你正在做的是旋轉45度的圖像,你可以簡單地使用imrotate

imrotate(Stack, 45); 

其中Stack是您的3D矩陣。 如果您正在尋找不依賴圖像處理工具箱的解決方案,請看看here