CV_WRAP static Ptr<FastFeatureDetector> create( int threshold=10, bool nonmaxSuppression=true, int type=FastFeatureDetector::TYPE_9_16 );
时间: 2024-01-12 13:02:20 浏览: 120
`cv::FastFeatureDetector::create()` 函数是一个静态函数,用于创建基于 FAST(Features from Accelerated Segment Test)算法的特征检测器。该函数的定义如下:
```
CV_WRAP static Ptr<FastFeatureDetector> create(int threshold=10, bool nonmaxSuppression=true, int type=FastFeatureDetector::TYPE_9_16);
```
该函数可以接受三个参数:
- threshold:FAST算法的阈值,取值范围为1到255,默认值为10。
- nonmaxSuppression:指定是否进行非最大值抑制,可选值为true或false,默认值为true。
- type:FAST算法的类型,可选值为`FastFeatureDetector::TYPE_5_8`、`FastFeatureDetector::TYPE_7_12`或`FastFeatureDetector::TYPE_9_16`,默认值为`FastFeatureDetector::TYPE_9_16`。
该函数返回一个指向 `cv::FastFeatureDetector` 类的智能指针,可以用于检测图像中的FAST特征点。使用方法如下:
```c++
#include <opencv2/opencv.hpp>
using namespace cv;
int main()
{
Mat image = imread("test.jpg");
Ptr<FastFeatureDetector> detector = FastFeatureDetector::create(30, true, FastFeatureDetector::TYPE_9_16);
std::vector<KeyPoint> keypoints;
detector->detect(image, keypoints);
// ...
return 0;
}
```
在上面的代码中,我们创建了一个FAST特征检测器,阈值为30,进行非最大值抑制,类型为`FastFeatureDetector::TYPE_9_16`。然后,我们使用 `detect()` 函数检测图像中的FAST特征点。
阅读全文