2015-04-04 52 views
0

我使用下面的代码读取一系列巴纽图像到MATLAB从我的计算机上的文件夹时,混错1024x800。但是,当我使用调试器时将鼠标悬停在imageArray {i}上时,我被告知图像的尺寸为800x1024x3!首先,行和列是如何混合起来的?其次,为什么我的2D图像被赋予了额外的维度?奇怪的是,当在imageArray {i}上调用imshow时,它会显示一个完美正常的图像。这里发生了什么?尺寸读.pngs到Matlab

谢谢!

回答

1

那是一个RGB (or Truecolor)图像。它们由3层堆叠在一起形成图像。在你的情况下,每层对应800x1024像素。

对于RGB图像,深度(第三维)始终为3.第一个平面包含图像每个像素中的红色程度,第二个平面包含图像每个像素中的绿色程度,而第第三个平面包含图像每个像素中的蓝色程度。

在matlab中,
第一维对应于图像中的行数。 二维对应于图像中的列数。

在Windows

它正好相反。
第一维对应于列数,第二维对应于行数。
这就是你把它们颠倒的原因。