Skip to main content

GetReferRect

GetReferRect

函数功能

支持查询Tensor的引用区域。

函数原型

Rect GetReferRect() const;

参数说明

返回参数说明

数据结构说明
MxBase::RectRect的数据类型,请参见Rect

父主题: Tensor

CvtColor

函数功能

将Tensor的图像色域类型转换为指定的色域类型,支持以下类型间的转换。

GRAY转RGB和RGBA转mRGBA场景可通过预加载Split和Merge提高接口执行效率。该场景接口执行时,会在接口执行目录生成记录融合规则的“fusion_result.json”文件,该文件字段详细说明及融合规则开关配置可参考《CANN ATC工具使用指南》的“参数说明 > 高级功能参数 > 模型调优选项 > - > -fusion_switch_file”章节。

“outputTensor”若设置“keepMargin”为“true”,输出宽自动与16对齐。默认值为“false”,不保留Tensor中无效的边界区域。

当前Atlas 200I/500 A2 推理产品支持YUVSP420(nv12)转YUV400(GRAY)。

支持:

函数原型

APP_ERROR CvtColor(const Tensor &inputTensor, Tensor &outputTensor, const CvtColorMode &mode, bool keepMargin = false, AscendStream &stream = AscendStream::DefaultStream());

参数说明

参数名输入/输出说明
inputTensor输入Tensor类,输入张量,不可为空,需在Device/DVPP侧分配内存,数据类型为UINT8。
- 形状为 {通道数} 的张量,通道数需要与输入格式一致。(说明:若 “inputTensor” 色域类型为YUVSP420或YVUSP420,设置输入张量形状时,高为图片显示高度的1.5倍。张量的高需要为3的倍数,宽为16的倍数,通道为1。 “inputTensor” 使用 SetValidRoi 接口设置有效区域时,其 y1 (对应张量的有效高度)需要为3的倍数,对应实际图片的有效高度为 y1 /3 * 2。)
- 输入张量宽度范围为[10, 4096],高度范围为[6, 4096],若输入或输出张量格式包含YUV400、YUVSP420、YVUSP420、GRAY时,宽度范围为[18, 4096]。
- 如果是灰度图,支持形状为{高*宽}的张量。
outputTensor输出Tensor类,输出张量。 若不为空,需在Device/DVPP侧分配内存且数据类型为UINT8。
mode输入枚举类值,对应色域转换的原始类型和目标类型。
text<br>enum class CvtColorMode &#123;<br> COLOR_YUVSP4202GRAY = 0<br>&#125;;<br>
若“mode”色域类型为“COLOR_BGR2YUVSP420”、“COLOR_RGB2YUVSP420”、“COLOR_RGB2YVUSP420”或COLOR_BGR2YVUSP420:
- 建议输入的RGBTensor宽高为偶数,否则输出图片的边缘可能存在异常数据。
- 输出张量的高为输入张量高的1.5倍,例如,输入高为4096,输出的高则为6144,超过部分DVPP接口的限制,使用时需要注意是否满足后续业务需求。
keepMargin输入输出的outputTensor中是否保留Tensor中无效的边界区域。 当mode=COLOR_GRAY2RGB或mode=COLOR_RGBA2mRGBA时,该参数无效。
stream输入AscendStream类型,默认值为“AscendStream::DefaultStream()”。当参数值为默认值时,接口为同步操作,其他情况下,接口为异步操作。

返回参数说明

数据结构说明
APP_ERROR程序执行返回的错误码,请参考APP_ERROR说明

父主题: TensorDvpp

Sift

函数功能

Sift类构造函数,作为图像尺度不变特征转换的实现类,主要开放特征点提取及计算接口。目前仅支持Atlas 200I A2 加速模块(20 TOPS,12GB)。

函数原型

Sift(int nFeatures = 0, int nOctaveLayers = 3, double contrastThreshold = 0.04, double edgeThreshold = 10, double sigma = 1.6, int descriptorType = CV_32F);// 构造失败时,会抛出std::runtime_error异常

参数说明

参数名输入/输出说明
nFeatures输入提取特征点的排位,即对提取特征点排序,返回最佳的前“nFeatures”位(包含并列情况)。默认值为0,表示提取全部特征点。特征点识别数量需以实际返回结果为准。
nOctaveLayers输入尺度空间每组图像中的中间层数。默认值为3,目前仅支持默认值,如配置其他参数构造将会失败并抛出std::runtime_error异常。
- nOctaveLayers + 3为高斯金字塔每组图像中所包含的层数。
- nOctaveLayers + 2为差分金字塔每组图像中所包含的层数。
contrastThreshold输入特征点过滤阈值。默认值为0.04,取值范围为[0.0, 20.0]。
edgeThreshold输入边缘效应过滤阈值。默认值为10, 取值范围为[0.0, 1000.0]。
sigma输入初始模糊尺度,高斯金字塔第0层图像的高斯滤波系数。默认值为1.6,目前仅支持默认值,如配置其他参数构造将会失败并抛出std::runtime_error异常。
descriptorType输入特征描述符的数据类型。默认值为CV_32F,目前支持以下数据类型。
- CV_8U
- CV_32F

父主题: Sift

Init

函数功能

实现尺度空间构造的模型处理资源初始化。

函数原型

APP_ERROR Init(int32_t deviceId = 0);

参数说明

参数名输入/输出说明
deviceId输入模型部署的芯片ID,默认为0。(目前仅支持0号芯片。)

返回参数说明

数据结构说明
APP_ERROR程序执行返回的错误码,请参考APP_ERROR说明

父主题: Sift

DetectAndCompute

函数功能

实现图像特征点的提取及计算。

函数原型

APP_ERROR DetectAndCompute(Tensor _image, Rect _mask, std::vector<cv::KeyPoint> &keyPoints, cv::OutputArray descriptors, bool useProvidedKeyPoints);

参数说明

参数名输入/输出说明
_image输入Tensor类,特征提取的输入图片。
- Tensor维度支持HWC(三维)。
- 不可为空,第三维C(通道数)为1,仅支持单通道。
- 支持1280 * 720输入图片尺寸。
_mask输入Rect类,输入图片掩码,用于限制需要计算特征的区域,针对该区域内的图像进行特征提取。 “_mask”所表示的掩码矩形框需放置在图片内,Rect类对应的左上角坐标及右下角坐标需在图片有效范围内。
keyPoints输入/输出提取的特征点列表。
descriptors输出生成的描述子列表。
useProvidedKeyPoints输入是否提供特征点列表,即该函数仅进行描述子生成。
- 参数为“true”时,接口将会根据keyPoints传入的特征点列表生成描述子列表。
- 参数为“false”时,接口将会根据Sift算法提取特征点列表并根据列表生成描述子列表。

返回参数说明

数据结构说明
APP_ERROR程序执行返回的错误码,请参考APP_ERROR说明

父主题: Sift

在线提单