趋近智
既然我们理解了图像是由排列成网格的像素组成的,我们就需要一种一致的方法来引用任何特定像素的位置。图像坐标系就在此时发挥作用。可以将其想象为图像网格中每个像素都有一个地址。
大多数图像处理库和计算机视觉应用使用的坐标系可能与你在数学课上学到的笛卡尔坐标系略有不同。这是标准约定:
像素的位置通常由一对值 (x,y) 指定,其中 x 是水平位置(列),y 是垂直位置(行),两者均从0开始。
图像坐标系的可视化表示。原点 (0,0) 位于左上角。x坐标向右增加,y坐标向下增加。
访问像素时,需要使用其坐标。如果图像的宽度为 W、高度为 H,则像素的索引方式如下:
例如,在一个宽度为800像素、高度为600像素的图像中 (W=800,H=600):
尽管 (x,y) 表示法(列,行)很常见,但许多编程库,特别是那些在Python中使用NumPy数组的库(如OpenCV),访问图像数据时,采用数组索引方式,遵循 (行, 列) 或 (y, x) 约定。
例如,要访问坐标 (x,y) 处的像素值,你可能会使用 pixel_value = image[y, x] 这样的代码。
image[0, 0] 访问左上角像素。image[599, 799] 访问右下角像素。坐标 (x,y) 和数组索引 [y, x] 之间的这种差异,是初学者经常感到困惑的地方。请务必查阅你所用特定函数或库的文档,以确认其期望的顺序。在本课程中,讨论坐标时我们通常会使用 (x,y),但在展示涉及数组访问的代码示例时,我们将使用与OpenCV和NumPy等库一致的 [y, x](行,列)格式。
理解这个坐标系很重要,因为几乎所有的图像处理操作,从简单的裁剪到复杂的物体检测,都需要你准确地指定和访问像素位置。
这部分内容有帮助吗?
© 2026 ApX Machine Learning用心打造