opencv的FeatureDetector特征检测器

blogmyself 2014-03-24 04:44:54
有没有用过opencv的FeatureDetector的,请问当运行到它的detect函数时,程序会崩溃是什么原因?
代码如下所示:
谢谢各位:
MatchImpl::MatchImpl(Mat img1,Mat img2)
{
...
Ptr<FeatureDetector> detector = FeatureDetector::create(“SURF”);
Ptr<DescriptorExtractor> descriptorExtractor = DescriptorExtractor::create( "SURF" );
Ptr<DescriptorMatcher> descriptorMatcher = DescriptorMatcher::create( "SURF" );
vector<KeyPoint> keypoints1;
detector->detect(img1,keypoints1); //运行到这里程序会崩溃
....
}
...全文
3003 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
czl389 2016-03-28
  • 打赏
  • 举报
回复
引用 3 楼 u011518659 的回复:
[quote=引用 2 楼 oTianShiDeBaiGu 的回复:] 可能原因: 1.cv::initModule_nonfree(); ////if use SIFT or SURF 2.img格式错误,或者为空。 3.内存不足
我的代码: cv::initModule_nonfree();//初始化模块,使用SIFT或SURF时用到 cv::Ptr<cv::FeatureDetector> detector = cv::FeatureDetector::create("SURF");////创建SIFT特征检测器,可改成SURF/ORB cv::Ptr<cv::DescriptorExtractor> Descriptor_Extractor = cv::DescriptorExtractor::create("SURF");//创建特征向量生成器,可改成SURF/ORB cv::Ptr<cv::DescriptorMatcher> Descriptor_Matcher = cv:: DescriptorMatcher::create("BruteForce");//创建一个特征匹配器 if( detector.empty()|| Descriptor_Extractor.empty()) MessageBox("创建检测器失败","Error",0); 执行后,detector为什么是空的?[/quote] 对啊,detector为空,这是问题所在,怎么解决
清风予你 2016-03-25
  • 打赏
  • 举报
回复
图片没传进去吧
gaowei1991 2016-03-19
  • 打赏
  • 举报
回复
遇到同样的问题 , detector 放在mian函数就能检测出来 放在 自己建的类里面就没有
KevinGuo0211 2015-11-12
  • 打赏
  • 举报
回复
同样的问题,咋么解决的额?
blogmyself 2014-11-21
  • 打赏
  • 举报
回复
我擦,这个问题不是我问的,我也不知道是谁问的,所以现在为止没有解决方法。。。先结了吧
明证真道 2014-10-21
  • 打赏
  • 举报
回复
同问啊,我的也是这种错误,咋整的啊?
Athos_Wang 2014-08-16
  • 打赏
  • 举报
回复
引用 2 楼 oTianShiDeBaiGu 的回复:
可能原因: 1.cv::initModule_nonfree(); ////if use SIFT or SURF 2.img格式错误,或者为空。 3.内存不足
我的代码: cv::initModule_nonfree();//初始化模块,使用SIFT或SURF时用到 cv::Ptr<cv::FeatureDetector> detector = cv::FeatureDetector::create("SURF");////创建SIFT特征检测器,可改成SURF/ORB cv::Ptr<cv::DescriptorExtractor> Descriptor_Extractor = cv::DescriptorExtractor::create("SURF");//创建特征向量生成器,可改成SURF/ORB cv::Ptr<cv::DescriptorMatcher> Descriptor_Matcher = cv:: DescriptorMatcher::create("BruteForce");//创建一个特征匹配器 if( detector.empty()|| Descriptor_Extractor.empty()) MessageBox("创建检测器失败","Error",0); 执行后,detector为什么是空的?
天使的白骨 2014-06-05
  • 打赏
  • 举报
回复
可能原因: 1.cv::initModule_nonfree(); ////if use SIFT or SURF 2.img格式错误,或者为空。 3.内存不足
__cc__ 2014-03-24
  • 打赏
  • 举报
回复
引用 楼主 smyzn 的回复:
有没有用过opencv的FeatureDetector的,请问当运行到它的detect函数时,程序会崩溃是什么原因? 代码如下所示: 谢谢各位: MatchImpl::MatchImpl(Mat img1,Mat img2) { ... Ptr<FeatureDetector> detector = FeatureDetector::create(“SURF”); Ptr<DescriptorExtractor> descriptorExtractor = DescriptorExtractor::create( "SURF" ); Ptr<DescriptorMatcher> descriptorMatcher = DescriptorMatcher::create( "SURF" ); vector<KeyPoint> keypoints1; detector->detect(img1,keypoints1); //运行到这里程序会崩溃 .... }
opencvdebug版本会提示错误信息,先确认一下是否输入参数正确。

4,446

社区成员

发帖
与我相关
我的任务
社区描述
图形图像/机器视觉
社区管理员
  • 机器视觉
  • 迪菲赫尔曼
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧