SimpleBlobDetector无法运行

时间:2016-07-14 01:05:37

标签: c++ opencv blob

Hello Stackoverflow社区,

我遇到了问题,我需要你的帮助。我有一个阈值垫,我正在尝试检测它上面的任何斑点。我的设置是:

    cv::SimpleBlobDetector::Params params;
    params.minDistBetweenBlobs = 10.0;  // minimum 10 pixels between blobs
    params.filterByArea = true;         // filter my blobs by area of blob
    params.minArea = 1000;              // min 1000 pixels squared
    params.maxArea = 10000;             // max 10000 pixels squared
    params.filterByColor = true;
    params.blobColor = 255;
    Ptr<SimpleBlobDetector> detector = SimpleBlobDetector::create(params);
    std::vector<cv::KeyPoint> myBlobs;
    detector->detect(fgMaskMOG2, myBlobs);
    drawKeypoints(fgMaskMOG2, myBlobs, fgMaskMOG2);
    imshow("FG Mask MOG 2", fgMaskMOG2);

但程序在运行后停止,而没有在我的图像上突出显示关键点。这是Mat fgMaskMOG2,一个二进制框架,在这些代码行之前创建: pic

我正在使用opencv 3.问题出在线路检测器 - >检测(fgMaskMOG2,myBlobs);我已经阅读了其他主题,并且不认为问题出在代码中,因为其他人也做了同样的事情。我试图将帧转换为CV_GRAY2RGB和CV_8UC1,但它不能解决问题。我也尝试调整params属性,但它不会改变任何东西。任何想法的人?

1 个答案:

答案 0 :(得分:0)

我发现的问题是我没有使用正确的库。我使用opencv_world.dll进行调试模式。我切换到发布模式,它解决了问题。