CvtColor
函数功能
将Tensor的图像色域类型转换为指定的色域类型,支持以下类型间的转换。
“outputTensor”若设置“keepMargin”为“true”,输出宽自动与16对齐。默认值为“false”,不保留Tensor中无效的边界区域。
- √:支持
- x:不支持
| 色域转换类型 | Atlas 200I/500 A2 推理产品 | Atlas 800I A2推理产品 | |
|---|---|---|---|
| YUVSP420(nv12)转YUV400(GRAY) | √ | √ | √ | 
| YVUSP420(nv21)转YUV400(GRAY) | x | √ | √ | 
| YUVSP420(nv12)转RGB | x | √ | √ | 
| YUVSP420(nv12)转BGR | x | √ | √ | 
| YVUSP420(nv21)转RGB | x | √ | √ | 
| YVUSP420(nv21)转BGR | x | √ | √ | 
| RGB转YUVSP420(nv12) | x | √ | √ | 
| RGB转YVUSP420(nv21) | x | √ | √ | 
| BGR转YUVSP420(nv12) | x | √ | √ | 
| BGR转YVUSP420(nv21) | x | √ | √ | 
| RGB转YUV400(GRAY) | x | √ | √ | 
| BGR转YUV400(GRAY) | x | √ | √ | 
| BGR转RGB | x | √ | √ | 
| RGB转BGR | x | √ | √ | 
| RGB转RGBA | x | √ | √ | 
| RGBA转YUV400(GRAY) | x | √ | √ | 
| RGBA转RGB | x | √ | √ | 
| GRAY转RGB | x | √ | x | 
| RGBA转mRGBA | x | √ | x | 
 
 RGBA转mRGBA需要依赖CANN 8.0.RC1或CANN 8.0.RC1以后的版本
函数原型
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 | 输入 | 枚举类值,对应色域转换的原始类型和目标类型。详见CvtColorMode。 若“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说明。 |