opencv4.6的情况下,VS2022中要使用 cv::xfeatures2d::SURF,项目属性应该怎么设置
时间: 2023-06-10 11:02:53 浏览: 370
要在VS2022中使用cv::xfeatures2d::SURF,您需要进行以下设置。
1. 点击项目,并选择属性.
2. 找到“VC++目录”选项卡,然后选择“包含目录”.
3. 添加OpenCV库的include文件夹路径.
4. 接下来,在“VC++目录”选项卡下选择“库目录”.
5. 添加OpenCV库的lib文件夹路径。
6. 然后,找到“链接器”选项卡和“输入”选项.
7. 添加lib文件夹中的opencv_world46x.lib.
8. 您还需要使用以下代码打开SURF.
```cpp
cv::Ptr<cv::xfeatures2d::SURF> detector = cv::xfeatures2d::SURF::create();
```
这些设置将允许您在VS2022中使用cv::xfeatures2d::SURF.
相关问题
在OpenCV4.6版本下,在VS2022中编写的程序中使用了cv::Ptrcv::xfeatures2d::SURF surf = cv::xfeatures2d::SURF::create(); stitcher->setFeaturesFinder(surf);提示错误LNK2019和LNK1120,应该怎么解决
根据您提出的错误信息,推测是链接器无法找到相关的函数定义。建议您检查代码是否正确包含了OpenCV以及xfeatures2d的头文件和库文件。可以尝试在项目属性中添加OpenCV和xfeatures2d的库文件路径,或者手动链接这些库文件。另外,也可以尝试在代码中添加以下语句:`cv::xfeatures2d::initModule_nonfree();`,这样可以确保在项目中正确地包含了非免费模块。希望这些提示对您有所帮助。
在OpenCV4.6版本下,C++编写的程序中使用了cv::Ptrcv::xfeatures2d::SURF surf = cv::xfeatures2d::SURF::create(); stitcher->setFeaturesFinder(makePtr<SurfFeatureDetector>());提示错误"cv:.xfeatures2d:SURF”:无法实例化抽象类,应该怎么解决
这个错误是因为cv::xfeatures2d::SURF是一个抽象类,无法直接实例化。解决这个问题的方法是,使用cv::xfeatures2d::SURF::create()函数创建一个对象,而不是直接使用构造函数。将代码修改为以下内容:
cv::Ptr<cv::xfeatures2d::SURF> surf = cv::xfeatures2d::SURF::create();
stitcher->setFeaturesFinder(surf);
此外,如果您的OpenCV版本低于3.0,xfeatures2d模块可能不包含SURF算法,因此您需要升级您的OpenCV版本或使用其他算法。
阅读全文