图像坐标系
您可以使用几种不同图像坐标系来访问图像中的位置。您可以使用离散像素索引指定位置,因为图像存储为数组。您也可以使用连续空间坐标来指定位置,因为图像表示连续空间中的真实世界场景。
像素索引
如 MATLAB 中的图像中所述,MATLAB® 将大多数图像存储为数组。数组的每个(行、列)索引对应于所显示图像中的单个像素。
前两个矩阵维度的像素索引和下标之间有一对一的对应关系。与 MATLAB 中的数组索引相似,像素索引是整数值,范围是从 1 到行或列的长度。索引的顺序是从上到下、从左到右。

例如,第五行第二列中的像素的数据存储在矩阵元素 (5, 2) 中。您可以使用普通的 MATLAB 矩阵下标来访问单个像素的值。例如,MATLAB 代码
I(2,15)
返回单通道图像 I 的第 2 行第 15 列的像素值。同样,MATLAB 代码
RGB(2,15,:)
返回多通道图像 RGB 的第 2 行第 15 列的像素的颜色值。
空间坐标
在空间坐标系中,图像中的位置是连续平面上的位置。位置用笛卡尔 x 和 y 坐标(而不是如像素索引系统中的行和列索引)来描述。从笛卡尔坐标角度来看,(x, y) 坐标(如 (3.2, 5.3))是有意义的,并且不同于坐标 (5, 3)。
Image Processing Toolbox™ 根据参考系定义两种类型的空间坐标系。内部坐标指定相对于图像自身参考系的位置。世界坐标指定相对于外部世界观察者的位置。
内部坐标
默认情况下,工具箱使用内部坐标系定义空间图像坐标。此空间坐标系对应于图像的像素索引。任何像素的中心点的内部坐标 (x, y) 与该像素的列和行索引相同。例如,第 5 行第 3 列中像素的中心点的空间坐标为 x = 3.0 且 y = 5.0。但请注意,内部坐标 (3.0, 5.0) 的顺序与像素索引 (5, 3) 相反。

每个像素中心的内部坐标都是整数值。左上角像素中心的内部坐标为 (1.0, 1.0)。右下角像素中心的内部坐标为 (numCols, numRows),其中 numCols 和 numRows 分别是图像中的列数和行数。通常,具有 (行, 列) 像素索引 (r, c) 的像素中心在内部坐标系中的空间坐标为 x = c 和 y = r。
由于内部坐标系中每个像素的大小是一个单位,因此图像的边界具有小数坐标。图像的左上角位于 (0.5, 0.5),而不是 (0, 0)。同样,图像的右下角位于 (numCols + 0.5, numRows + 0.5)。
有几个函数主要使用空间坐标而不是像素索引,但是,只要使用默认的空间坐标系(内部坐标),就可以根据其列 (x) 和行 (y) 来指定位置。
对于三维图像,z 轴指向页面内,遵循右手坐标系。任何体素中心点的内部坐标 (x, y, z) 与该体素的列、行和页面(或平面)索引相同。例如,行 5、列 3、页面 2 的体素的中心点的空间坐标为 x = 3.0、y = 5.0 和 z = 2.0。
与二维图像类似,三维图像中每个体素中心的内部坐标是整数值,且每个体素的大小为一个单位。对于三个维度以上的多维图像,z 轴后的轴同样对应于第三个维度后的数组索引。
世界坐标
世界坐标系(也称为非默认空间坐标系)放宽了内部坐标系的几个约束。在世界坐标系中,像素或体素可以具有任何长度、宽度或深度,并且居中置于任意坐标点上。
可能需要在二维、三维或多维图像中使用世界坐标系的一些情况包括:
当您对图像执行几何变换(如平移)并希望保留新位置与原始位置的关系信息时。
当像素或体素不是各向同性时。例如,在磁共振成像 (MRI) 中,您可以收集数据,使体素在 x 和 y 方向上的采样率高于在 z 方向上。
当您知道像素或体素的范围如何与现实世界中的位置对应时。例如,在航空照片中,每个像素可能覆盖地面上一个特定的 5×5 米地块。
当您要反转任何轴的方向时。这是一种用于地理空间数据的常见方法。
定义世界坐标系有几种方法。您可以使用空间参照对象定义一个世界坐标系,这些对象对图像在世界坐标系中的位置、图像分辨率以及图像范围与内部坐标和世界坐标的关系进行编码。您也可以对空间参照对象中每个维度的最大和最小坐标进行编码。有关详细信息,请参阅Define World Coordinate System of Image。