VPC功能
功能说明
VPC(Vision Preprocessing Core)功能如下所示,
- 抠图,从输入图片中抠出需要用的图片区域。
- 缩放,对图片进行缩放,支持单图裁剪缩放、一图多框裁剪缩放、原图缩放等多种缩放方式。
- 叠加,从输入图片中抠出来的图,对抠出的图进行缩放后,放在用户输出图片的指定区域,输出图片可以是空白图片(由用户申请的空输出内存产生的),也可以是已有图片(由用户申请输出内存后将已有图片读入输出内存),只有当输出图片是已有图片时,才表示叠加。
- 拼接,从输入图片中抠多张图片,对抠出的图进行缩放后,放到输出图片的指定区域。
- 直方图统计,统计图像每个通道(RGB/YUV)的像素值分布。
- 色彩重映射,根据配置信息将图片从原图映射为另一张图。
- 边界填充,对图像进行边界填充。
- 格式转换,对图像进行格式转换。
- 图像灰度化,将彩色图像转化为灰度图像。需注意,输入为灰度图像、输出只能为灰度图像。
实现图像灰度化的操作是输出YUV400格式的输出图片。
- Remap变换,根据像素位置LUT对输入图像进行几何形变,典型的用途包括:镜头畸变校正、仿射变换、透视变换,功能示意图请参见图4。
形变方式可以用下述公式描述:dst(x,y)=src(LUT(x,y))。
其中,dst(x,y)为输出图像在坐标(x,y)处的像素值,像素位置LUT(x,y)是输出图像在(x,y)处的像素对应输入图像中的横、纵坐标值,src(LUT(x,y))为输入图像在坐标LUT(x,y)处的像素值。通用的像素位置LUT可通过用户提供的map1(横坐标映射矩阵)和map2(纵坐标映射矩阵)生成,仿射变换或透视变换的像素位置LUT也可通过用户提供的3个点对或4个点对信息计算生成。
- 滤波:对输入图片做滤波处理,当前可支持中值滤波/腐蚀/膨胀/高斯滤波/均值滤波/卷积滤波。
- 旋转:对输入图片做固定角度的旋转,支持90度/180度/270度。
- 马赛克:对输入图片做马赛克处理。
- 覆盖: 对输入图片做局部覆盖操作。
- 画线:对输入图片做画线处理。
- 添加水印:对输入图片做添加水印的处理。
功能示意图(Atlas 200/500 A2推理产品)
图2 VPC功能示意图(拼接)
图3 等比例缩放(贴图区域在输出图片的中心位置),即缩放前后图片的宽高比例相同
参考说明
RGB、YUV格式图像的各分量排布示意图。示例:SP图像以YUV420SP为例,Packed和RGB图像以ARGB图像为例。
父主题: VPC图像处理接口