图像坐标系与像素概念:像素、分辨率、图像坐标系定义、像素与物理尺寸的关系
在机器视觉测量项目中,像素(Pixel)是构成数字图像的最小基本单元,而图像坐标系则是描述这些像素在图像中位置的数学框架。理解像素、分辨率、图像坐标系以及像素与物理尺寸之间的换算关系,是进行Halcon毫米像素比(即像素当量)标定和旋转中心求解的前提。如果这些基础概念不牢固,后续的标定结果将缺乏物理意义,甚至导致测量误差被系统性放大。本节将系统梳理这些核心概念,并建立从“像素世界”到“物理世界”的映射逻辑。
上图展示了从像素坐标系到物理坐标系的完整映射链路。左侧为图像像素坐标系,原点位于图像左上角,u轴向右,v轴向下,单位为像素(pixel)。中间为物理图像坐标系,原点通常位于光轴与图像平面的交点(主点),x轴与u轴平行,y轴与v轴平行,单位为毫米(mm)。右侧给出了两者之间的线性变换关系,其中Sx和Sy即为水平与垂直方向的像素当量(mm/pixel),是Halcon标定中需要求解的核心参数。
3.1 像素与分辨率:数字图像的基本构成
核心原理:像素是数字图像的最小信息单元,每个像素对应传感器(如CCD或CMOS)上的一个感光单元。分辨率则从两个维度描述图像:空间分辨率指图像中像素的总数(如2448×2048),决定了图像的细节承载能力;灰度分辨率指每个像素用多少比特位表示亮度值(如8bit对应0-255灰度级),决定了亮度变化的细腻程度。在机器视觉测量中,我们更关注空间分辨率与物理视场的比值,即单位毫米对应的像素数。
判断方法:选择相机分辨率时,需根据最小测量特征和视场大小进行估算。例如,若要检测0.05mm的缺陷,且视场为50mm×40mm,则单方向至少需要50/0.05=1000个像素,考虑边缘检测的亚像素精度(通常可达0.1-0.5像素),实际选型建议留出2-3倍余量。
| 分辨率类型 | 定义 | 典型值 | 对测量的影响 |
|---|---|---|---|
| 空间分辨率 | 图像像素矩阵的宽×高 | 640×480 ~ 4096×3072 | 决定视场内可分辨的最小物理尺寸 |
| 灰度分辨率 | 单个像素的量化比特数 | 8bit (256级) / 10bit / 12bit | 影响边缘对比度提取和亚像素定位稳定性 |
| 时间分辨率 | 相机帧率与曝光时间 | 30fps ~ 1000fps | 影响动态测量中的运动模糊程度 |
get_image_pointer1 可以获取图像的指针和类型,通过 get_image_size 获取宽高。务必确认图像类型为 byte(8bit)或 uint2(16bit),这直接影响后续灰度处理的精度。
3.2 图像坐标系定义:从像素到物理的桥梁
核心原理:图像坐标系分为两层。第一层是像素坐标系 (u,v),以图像左上角为原点,单位为像素,是图像在内存中的存储索引。第二层是物理图像坐标系 (x,y),以主点(光轴与图像平面的交点)为原点,单位为毫米,用于描述物体在像平面上的实际位置。两者之间的转换关系为:x = (u - cx) × Sx,y = (v - cy) × Sy,其中(cx, cy)为主点坐标,Sx和Sy为像素当量。
操作流程:在Halcon中进行像素与物理坐标转换时,通常遵循以下步骤:
- 通过标定板(如Halcon的Calibration Plate)获取标定图像。
- 使用
find_calib_object算子提取标定板特征点。 - 调用
camera_calibration算子求解相机内参(包括主点cx, cy、焦距f、畸变系数)和外参(位姿)。 - 利用
image_points_to_world_plane算子将像素坐标映射到世界坐标系的指定平面上。
案例拆解:假设某视觉系统使用500万像素相机(2448×2048),标定后得到主点坐标为(1224.5, 1024.3),像素当量Sx=Sy=0.0125 mm/pixel。若某特征点的像素坐标为(1500, 800),则其物理坐标为:x = (1500 - 1224.5) × 0.0125 = 3.44375 mm,y = (800 - 1024.3) × 0.0125 = -2.80375 mm。注意y为负值,表示该点在主点上方(图像坐标系y轴向下)。
3.3 像素与物理尺寸的关系:像素当量的标定原理
核心原理:像素当量(Pixel Calibration Factor)定义为每个像素对应的物理尺寸,单位为mm/pixel。其数学表达式为:S = 传感器像元尺寸 / 镜头放大倍率。例如,某相机像元尺寸为3.45μm,镜头放大倍率为0.5倍,则像素当量S = 3.45μm / 0.5 = 6.9μm/pixel = 0.0069 mm/pixel。但实际中,由于镜头畸变和工作距离变化,直接计算并不准确,必须通过标定获取。
标定方法:Halcon中常用的像素当量标定方法包括:
- 标准量块法:将已知尺寸的高精度量块(如10mm)置于视场内,通过测量其像素长度,计算S = 实际长度 / 像素长度。
- 标定板法:使用Halcon标准标定板,通过
find_calib_object自动提取特征点,结合camera_calibration求解完整相机模型,从而获得每个像素的精确物理尺寸。 - 十字线法:在视场内放置十字线,测量水平与垂直方向的像素间距,分别计算Sx和Sy。
| 标定方法 | 精度等级 | 操作复杂度 | 适用场景 |
|---|---|---|---|
| 标准量块法 | 中等(±0.5%) | 低 | 快速验证、现场调试 |
| 标定板法 | 高(±0.05%) | 中 | 精密测量、批量生产 |
| 十字线法 | 低(±1%) | 最低 | 粗略估算、非精密定位 |
get_calib_data 算子获取相机内参中的像素当量。对于远心镜头,Sx和Sy通常相等且恒定;对于普通透视镜头,由于畸变影响,视场边缘的像素当量会与中心略有差异。因此,在精密测量中建议使用 image_to_world_plane 进行逐像素校正,而非简单使用单一比例因子。
3.4 常见误区与总结复盘
常见误区一:将图像分辨率与测量精度直接等同。例如,500万像素相机并不代表测量精度就是视场宽度除以2448。实际精度还受镜头畸变、光照稳定性、边缘提取算法和标定误差的影响。Halcon的亚像素边缘提取(如 edges_sub_pix)可将定位精度提升到0.1像素级别,但前提是图像质量足够好。
常见误区二:忽略主点偏移。许多工程师在手动计算像素当量时,默认主点位于图像中心,这在精密测量中会引入系统性偏差。正确做法是通过标定获取主点坐标,并在坐标转换中显式使用。
常见误区三:混淆像素坐标系与物理坐标系的y轴方向。像素坐标系y轴向下,而物理坐标系y轴通常向上(取决于世界坐标系定义)。在Halcon中,image_points_to_world_plane 算子会正确处理这一转换,但若手动计算则需格外注意符号。
总结复盘:本节内容为后续的毫米像素比计算和旋转中心求解奠定了数学基础。像素当量不是固定常数,而是随工作距离、镜头焦距和畸变状态变化的参数。在Halcon中,推荐使用完整的相机标定流程(而非简单的比例法)来获取像素当量,这样不仅能得到Sx和Sy,还能获得主点坐标和畸变系数,为高精度测量提供完整的内参模型。下一阶段,我们将基于这些基础概念,深入探讨如何通过Halcon算子实现毫米像素比的自动计算与验证。