Main Content

本页的翻译已过时。点击此处可查看最新英文版本。

图像坐标系

您可以使用几种不同图像坐标系来访问图像中的位置。您可以使用离散像素索引指定位置,因为图像存储为数组。您也可以使用连续空间坐标来指定位置,因为图像表示连续空间中的真实世界场景。

像素索引

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 是图像中的行数和列数。通常,具有像素索引 (m, n) 的像素的中心位于内部坐标系中的点 x = n、y = m 上。

由于内部坐标系中每个像素的大小是一个单位,因此图像的边界具有小数坐标。图像的左上角位于 (0.5,0.5),而不是 (0,0)。同样,图像的右下角位于 (numCols + 0.5, numRows + 0.5)。

有几个函数主要使用空间坐标而不是像素索引,但是,只要使用默认的空间坐标系(内部坐标),就可以根据其列 (x) 和行 (y) 来指定位置。

世界坐标

在某些情况下,您可能希望使用世界坐标系(也称为非默认空间坐标系)。可能需要使用世界坐标系的一些情况包括:

  • 当您对图像执行几何运算(如平移)并希望保留新位置与原始位置的关系信息时。

  • 当像素布局不是正方形时。例如,在磁共振成像 (MRI) 中,您可以收集数据,使像素在一个方向上的采样率高于正交方向。

  • 当您知道像素的范围如何与现实世界中的位置对应时。例如,在航空照片中,每个像素可能覆盖地面上一个特定的 5×5 米地块。

  • 当您要反转 x 轴或 y 轴的方向时。这是一种用于地理空间数据的常见方法。

定义世界坐标系有几种方法。您可以使用空间参照对象,这些对象对图像在世界坐标系中的位置、图像分辨率以及图像范围与内部坐标和世界坐标的关系进行编码。您也可以指定每个维度中的最大和最小坐标。有关详细信息,请参阅Define World Coordinate System of Image

相关示例

详细信息