Image `rot90`在Matlab中,图像旋转未按预期工作。
IMAGE1 图像2 所需图像 我正在使用函数Image `rot90`在Matlab中,图像旋转未按预期工作。,image,matlab,rotation,image-rotation,Image,Matlab,Rotation,Image Rotation,IMAGE1 图像2 所需图像 我正在使用函数flipud和rot90旋转IMAGE1使其看起来像IMAGE2,如下所示: IMAGE2=rot90(flipud(IMAGE1)); 然而,不知何故,我没有得到理想的结果,即理想的图像。有人能说出原因吗?请忽略所需图像中的侧边图例剪切以下是2D阵列的示例(请参见注释) 哦,我明白了,我以为这是实际结果。那么实际结果是什么呢?我的错。我已经更正了变量名并澄清了问题的结构。我正在为IMAGE1添加数据,但无法添加,因为它超出了问题的字数限制。
flipud
和rot90
旋转IMAGE1使其看起来像IMAGE2,如下所示:
IMAGE2=rot90(flipud(IMAGE1));
然而,不知何故,我没有得到理想的结果,即理想的图像。有人能说出原因吗?请忽略所需图像中的侧边图例剪切以下是2D阵列的示例(请参见注释)
哦,我明白了,我以为这是实际结果。那么实际结果是什么呢?我的错。我已经更正了变量名并澄清了问题的结构。我正在为
IMAGE1
添加数据,但无法添加,因为它超出了问题的字数限制。如果你需要数据,请告诉我。目前还不清楚。您已经给了我们原始的输入和期望的输出,但没有实际的输出。所以很难确定问题是什么!哦,好的。我已经添加了实际输出,并相应地编辑了图像的名称。嗨,乔纳斯:我有2D数据,而不是用来绘制图像1的图像。如问题所述,我正在应用IMAGE2=rot90(flipud(IMAGE1))代码>在图像1的二维数据上。我尝试了您的步骤,即先执行rot90()
,然后执行flipud()
,但这似乎不起作用。在这种情况下,你有什么建议?@S_H:你完全按照我的做法做了吗?也就是说,向另一个方向旋转(这就是-1的意思)?顺序并不重要,所以你也可以先翻转,然后再旋转。我知道。但它不起作用,我也不知道为什么。我正在使用数据旋转然后绘图。你能用50x50
2D数据的形式而不是图像的形式重新编写它吗?@S_H:UPDATE2中的图像看起来与转置完全一样。如果你再执行一次翻转和旋转,我打赌你最终会得到更新图像。这表明您最初应用转换的数组不是原始图像中显示的数组。
%# create a 2D array (3x3, but it'll work for 50x50 as well)
m = magic(3)
m =
8 1 6
3 5 7
4 9 2
%# flip, then rotate, but rotate clockwise, hence the -1
rot90(flipud(m),-1)
ans =
8 3 4
1 5 9
6 7 2
%# Note that this is the same as taking the transpose
m'
ans =
8 3 4
1 5 9
6 7 2