将Tensor的图像色域类型转换为指定的色域类型,支持以下类型间的转换。
GRAY转RGB和RGBA转mRGBA场景可通过预加载Split和Merge提高接口执行效率。该场景接口执行时,会在接口执行目录生成记录融合规则的“fusion_result.json”文件,该文件字段详细说明及融合规则开关配置可参考《CANN ATC工具使用指南》的 章节。
“outputTensor”若设置“keepMargin”为“true”,输出宽自动与16对齐。默认值为“false”,不保留Tensor中无效的边界区域。
当前Atlas 200I/500 A2 推理产品支持YUVSP420(nv12)转YUV400(GRAY)。
Atlas 推理系列产品支持:
APP_ERROR CvtColor(const Tensor &inputTensor, Tensor &outputTensor, const CvtColorMode &mode, bool keepMargin = false, AscendStream &stream = AscendStream::DefaultStream());
参数名 |
输入/输出 |
说明 |
---|---|---|
inputTensor |
输入 |
Tensor类,输入张量,不可为空,需在Device/DVPP侧分配内存,数据类型为UINT8。
|
outputTensor |
输出 |
Tensor类,输出张量。 若不为空,需在Device/DVPP侧分配内存且数据类型为UINT8。RGBA转mRGBA或GRAY转RGB时张量类型和输入Tensor一致。 |
mode |
输入 |
枚举类值,对应色域转换的原始类型和目标类型。 enum class CvtColorMode { COLOR_YUVSP4202GRAY = 0, COLOR_YVUSP4202GRAY = 1, COLOR_YUVSP4202RGB = 2, COLOR_YVUSP4202RGB = 3, COLOR_YUVSP4202BGR = 4, COLOR_YVUSP4202BGR = 5, COLOR_RGB2GRAY = 6, COLOR_BGR2GRAY = 7, COLOR_BGR2RGB = 8, COLOR_RGB2BGR = 9, COLOR_RGB2RGBA = 10, COLOR_RGBA2GRAY = 11, COLOR_RGBA2RGB = 12, COLOR_GRAY2RGB = 13, COLOR_RGBA2mRGBA = 14, COLOR_BGR2YUVSP420 = 15, COLOR_RGB2YUVSP420 = 16, COLOR_RGB2YVUSP420 = 17, COLOR_BGR2YVUSP420 = 18 }; 若“mode”色域类型为“COLOR_BGR2YUVSP420”、“COLOR_RGB2YUVSP420”、“COLOR_RGB2YVUSP420”或COLOR_BGR2YVUSP420:
|
keepMargin |
输入 |
输出的outputTensor中是否保留Tensor中无效的边界区域。 当mode=COLOR_GRAY2RGB或mode=COLOR_RGBA2mRGBA时,该参数无效。 |
stream |
输入 |
AscendStream类型,默认值为“AscendStream::DefaultStream()”。当参数值为默认值时,接口为同步操作,其他情况下,接口为异步操作。 |
数据结构 |
说明 |
---|---|
APP_ERROR |
程序执行返回的错误码,请参考APP_ERROR说明。 |