amsw11 2015-10-02 12:06 采纳率: 0%
浏览 2064

opencv的surf算法程序出错,直接停止运行

代码是浅墨的博客里的,好像是在detect跟drawkeypoints的地方出错了,可不知为何就是不能运行成功,求问
#include "opencv2/core/core.hpp"

#include "opencv2/features2d/features2d.hpp"

#include "opencv2/highgui/highgui.hpp"

#include "opencv2/nonfree/nonfree.hpp"

#include

using namespace cv;

int main(int argc, char** argv)
{

//【1】载入源图片并显示  
Mat srcImage1 = imread("F:\\01.jpg", 1);
Mat srcImage2 = imread("F:\\02.jpg", 1);
if (!srcImage1.data || !srcImage2.data)//检测是否读取成功  
{
    printf("读取图片错误,请确定目录下是否有imread函数指定名称的图片存在~! \n"); return false;
}
imshow("原始图1", srcImage1);
imshow("原始图2", srcImage2);

//【2】定义需要用到的变量和类  
int minHessian = 400;//定义SURF中的hessian阈值特征点检测算子  
SurfFeatureDetector detector(minHessian);//定义一个SurfFeatureDetector(SURF) 特征检测类对象  
std::vector<cv::KeyPoint> keypoints_1, keypoints_2;//vector模板类是能够存放任意类型的动态数组,能够增加和压缩数据  


//【3】调用detect函数检测出SURF特征关键点,保存在vector容器中  
detector.detect(srcImage1, keypoints_1);
detector.detect(srcImage2, keypoints_2);

//【4】绘制特征关键点  
Mat img_keypoints_1; Mat img_keypoints_2;
drawKeypoints(srcImage1, keypoints_1, img_keypoints_1, Scalar::all(-1), DrawMatchesFlags::DEFAULT);
drawKeypoints(srcImage2, keypoints_2, img_keypoints_2, Scalar::all(-1), DrawMatchesFlags::DEFAULT);

//【5】显示效果图  
imshow("特征点检测效果图1", img_keypoints_1);
imshow("特征点检测效果图2", img_keypoints_2);

waitKey(0);
return 0;

}

  • 写回答

1条回答 默认 最新

  • devmiao 2015-10-02 15:58
    关注
    评论

报告相同问题?

悬赏问题

  • ¥15 delta降尺度计算的一些细节,有偿
  • ¥15 Arduino红外遥控代码有问题
  • ¥15 数值计算离散正交多项式
  • ¥30 数值计算均差系数编程
  • ¥15 redis-full-check比较 两个集群的数据出错
  • ¥15 Matlab编程问题
  • ¥15 训练的多模态特征融合模型准确度很低怎么办
  • ¥15 kylin启动报错log4j类冲突
  • ¥15 超声波模块测距控制点灯,灯的闪烁很不稳定,经过调试发现测的距离偏大
  • ¥15 import arcpy出现importing _arcgisscripting 找不到相关程序