Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/opencv/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 特性探测器不在OpenCV 3.0.0中?_C++_Opencv - Fatal编程技术网

C++ 特性探测器不在OpenCV 3.0.0中?

C++ 特性探测器不在OpenCV 3.0.0中?,c++,opencv,C++,Opencv,我正在尝试使用OpenCVFeatureDetector类;MSER、跟踪性能好、速度快等 但是当我使用它们时,我得到了编译器错误: 错误1错误C2259:“cv::FastFeatureDetector”:无法实例化抽象类 我需要包括一个特定的头文件,dll或什么?出什么事了?我尝试使用的几乎每一个FeatureDescriptor都会出现编译器错误。例如,使用GoodFeaturesToTrackDetector会导致另一个编译器错误: 错误1错误C2039:“GoodFeaturesToT

我正在尝试使用OpenCV
FeatureDetector
类;MSER、跟踪性能好、速度快等

但是当我使用它们时,我得到了编译器错误:

错误1错误C2259:“cv::FastFeatureDetector”:无法实例化抽象类

我需要包括一个特定的头文件,dll或什么?出什么事了?我尝试使用的几乎每一个
FeatureDescriptor
都会出现编译器错误。例如,使用
GoodFeaturesToTrackDetector
会导致另一个编译器错误:

错误1错误C2039:“GoodFeaturesToTrackDetector”:不是“cv”的成员

我正在使用OpenCV 3.0.0。我正在使用VS2013安装Windows 8.1。我包括以下OpenCV库:

  • opencv_world300d.lib
  • opencv_highgui300d.lib
  • opencv_imgcodecs300d.lib
  • opencv_text300d.lib
  • opencv_特性2d300d.lib
  • opencv_imgproc300d.lib
#包括
#包括“opencv2/core.hpp”
#包括“opencv2/features2d.hpp”
#包括“opencv2/highgui.hpp”
#包括“opencv2/calib3d.hpp”
使用名称空间cv;
void特性检测试验()
{
图像=imread(“i.jpg”);
向量关键点;
Ptr fast=新的FastFeatureDetector(40);
//行上编译器错误:“错误1错误C2259:'cv::FastFeatureDetector':无法实例化抽象类”
快速->检测(图像、关键点);
drawKeypoints(图像、关键点、图像、标量(255、255、255)、DrawMatchesFlags::DRAW\u OVER\u OUTIMG);
imshow(“图像”,图像);
}

您得到的错误意味着您试图实例化的类是,这基本上意味着您只能使用从该类继承的类的对象,而不能使用该类本身

在这种情况下,您并不真正关心要使用的具体实现,因此可以使用指向
fastfeaturedetator
类型的对象的指针。此指针可由opencv api为您创建,函数如下:

Ptr<FeatureDetector> fast = FastFeatureDetector::create(40); 
Ptr fast=FastFeatureDetector::create(40);

您得到的错误意味着您试图实例化的类是,这基本上意味着您只能使用从该类继承的类的对象,而不能使用该类本身

在这种情况下,您并不真正关心要使用的具体实现,因此可以使用指向
fastfeaturedetator
类型的对象的指针。此指针可由opencv api为您创建,函数如下:

Ptr<FeatureDetector> fast = FastFeatureDetector::create(40); 
Ptr fast=FastFeatureDetector::create(40);

我也收到了相同的错误消息。执行以下操作时,错误将消失:

cv::Ptr<cv::FastFeatureDetector> fast = cv::FastFeatureDetector::create(40);
cv::Ptr fast=cv::FastFeatureDetector::create(40);

我也收到了相同的错误消息。执行以下操作时,错误将消失:

cv::Ptr<cv::FastFeatureDetector> fast = cv::FastFeatureDetector::create(40);
cv::Ptr fast=cv::FastFeatureDetector::create(40);