【发布时间】:2021-12-09 18:14:57
【问题描述】:
我正在使用 Visual Studio 2017。安装了 4.2.0 的 Opencv 和 opencv 版本,并使用 cmake 生成文件。 xfeatured2d420.lib 与编译器链接。还有#include“opencv2/xfeatures2d.hpp” #include "opencv2/xfeatures2d/nonfree.hpp" 包括在内。使用 xfeatures2d::Sift 提取特征给我内存错误。我需要从两个图像中计算筛选关键点。
【问题讨论】:
-
cv::Ptr
f2d = xfeatures2d::SIFT::create();此时内存错误 std::vector keypoints_1, keypoints_2; f2d->检测(帧,关键点_1); f2d->detect(frame2, keypoints_2); -
您的帖子需要包含minimal reproducible example。 编辑您的问题。确保将代码格式化/样式化为代码。不要将其保留为文本。
-
请提供足够的代码,以便其他人更好地理解或重现问题。
-
Mat img_1 = imread("C:/Users/Dan/Desktop/0.jpg", 1); Mat img_2 = imread("C:/Users/Dan/Desktop/0.jpg", 1); cv::Ptr
f2d = xfeatures2d::SIFT::create(); std::vector keypoints_1, keypoints_2; f2d->检测(img_1,关键点_1); f2d->检测(img_2,关键点_2);垫描述符_1,描述符_2; f2d->计算(img_1,关键点_1,描述符_1); f2d->计算(img_2,关键点_2,描述符_2); BFMatcher 匹配器; std::vector 匹配; matcher.match(descriptors_1, descriptors_2, 匹配); -
由于太长,我无法发布整个代码。我正在使用这个例子stackoverflow.com/questions/38971426/…