2015-09-17 348 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