opencv中的崩溃检测功能(ORB和BRISK)



我试图使用检测器ORB获取图像中的关键点,但总是遇到异常并崩溃,我的代码是下一个。

vector < KeyPoint > kp;
int nfeatures = 500;
float scaleFactor = 1.2f;
int nlevels = 8;
int edgeThreshold = 15;
int firstLevel = 0;
int WTA_K = 2;
int scoreType = ORB::HARRIS_SCORE;
int patchSize = 31;
int fastThreshold = 20;
Ptr < ORB > detector = ORB::create(
    nfeatures,
    scaleFactor,
    nlevels,
    edgeThreshold,
    firstLevel,
    WTA_K,
    scoreType,
    patchSize,
    fastThreshold );
detector->detect(img, kp);
cout << "Found " << kp.size() << " Keypoints " << std::endl;
Mat out;
drawKeypoints(img, kp, out, Scalar::all(255));
imshow("Kpts", out);

img是早期声明的,问题是当dodetector->detect(img,kp)时;我不知道问题出在哪里,我正在尝试其他形式的do it,但在detect()的调用中全部崩溃。

我尝试使用BRISK,但在检测崩溃的调用中问题相同。我轻快地做了下一个简化:

Ptr < BRISK > detector = BRISK::create();
vector <KeyPoint> kp;
detector->detect(img,kp);

这让人恼火。

我在visual studio 2015中使用opencv 3,带有windows 10。

对不起我的英语,谢谢你的回答。

此错误在CV2版本4.2.0中仍然存在。我同样尝试过用cv2.ORB()初始化,收到了~00x5 error,尝试了ORB_create(),最终成功了!

好的,我用cmake和opencv_controib解决了为visual studio构建opencv的问题,如果有人有同样的问题,我会按照下一个链接的说明进行操作:

http://audhootchavancv.blogspot.in/2015/08/how-to-install-opencv-30-and.html

相关内容

  • 没有找到相关文章

最新更新