GDC功能介绍
GDC是什么
几何畸变矫正(Geometric Distortion Correction,以下简称GDC)子系统实现的功能:对一帧图像进行鱼眼校正(包括360全景、180全景和Normal三种校正模式)、LDC(镜头畸变校正)校正功能。GDC相关API和参数说明请参见《CANN AscendCL应用软件开发指南(C&C++)》的"AscendCL API参考>媒体数据处理V2"章节下的接口说明:
- hi_mpi_vi_set_chn_ldc_attr
- hi_mpi_vi_get_chn_ldc_attr
- hi_mpi_vpss_set_grp_fisheye_cfg
- hi_mpi_vpss_get_grp_fisheye_cfg
- hi_mpi_vpss_set_chn_fisheye
- hi_mpi_vpss_get_chn_fisheye
矫正流程如下图所示。
鱼眼矫正的安装模式、校正模式
鱼眼支持地装、顶装、壁装三种安装模式。地装即镜头安装在桌面或地面等仰视场景;顶装,即安装在天花板等俯视场景;壁装,即安装在墙面等垂直面上的场景。
鱼眼支持360全景校正、180全景校正、normal校正三种校正模式。
在不同的安装场景下,可选择与之适合的校正模式以达到最佳效果。鱼眼在各校正模式下可以只通过改变PTZ(Pan/Tilt/Zoom)参数选取校正区域,实现电子PTZ功能。选取校正区域的设置方法为ptz模式,各校正模式在典型场景时的PTZ参数含义及校正模型如下表所示。
校正模式 |
典型场景 |
典型场景时参数说明 |
校正模型 |
---|---|---|---|
360全景校正 |
顶装地装 |
|
|
180全景校正 |
壁装 |
|
|
normal校正 |
壁装顶装地装 |
|
- 360校正模式下不支持壁装,180校正模式下不支持顶装和地装。
- 鱼眼参数外半径out_radius用于限定鱼眼原图内容的边界,超出out_radius部分硬件视为无效内容(黑色),out_radius应设置为鱼眼原图的实际半径。内半径in_radius仅在360全景校正模式下有效,与外半径out_radius共同确定校正区域在半径方向上的范围,无论何种校正模式,外半径都应该设置为原图半径值,校正区域应通过PTZ参数来确定。
镜头畸变矫正的模式
镜头畸变矫正支持桶形畸变和枕形畸变两种矫正模式,如下图所示。
配置参数 |
配置范围 |
参数意义 |
---|---|---|
center_x_offset |
-511~+511 |
图像中心点相对于物理中心点的水平偏移 |
center_y_offset |
-511~+511 |
图像中心点相对于物理中心点的垂直偏移 |
distortion_ratio |
[-300,500] |
矫正强度,负数为枕型,正数为桶型 |
aspect |
bool |
视野调整过程中是否保持幅型比 |
xy_ratio |
0~100 |
视野大小参数,aspect=1时有效 |
x_ratio |
0~100 |
X方向视野大小参数,aspect=0时有效 |
y_ratio |
0~100 |
Y方向视野大小参数,aspect=0时有效 |
建议用棋盘格进行矫正标定。