---
title: DetectAndCompute
description: "实现图像特征点的提取及计算。"
url: https://www.hiascend.com/document/detail/zh/Atlas200IDKA2DeveloperKit/latest/Application%20Development%20Guide/msadg/mxvisionug_0823.html
sourcePath: /source/zh/Atlas200IDKA2DeveloperKit/23.0.RC2/Application Development Guide/msadg/mxvisionug_0823.html
indexId: 9872f75c3805e11f788e1cdd27b9999b55244ede81edfff1c2220215c8a6cac0102
---
# 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说明。 |
