SimpleBlobDetector 不能 运行

SimpleBlobDetector cannot run

你好 Whosebug 社区,

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

    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,一个二进制框架,在这些代码行之前创建:

我正在使用 opencv 3。问题出在线路检测器->检测(fgMaskMOG2, myBlobs);我已经阅读了其他主题,但不认为问题出在代码中,因为其他人也这样做过。我尝试将框架转换为 CV_GRAY2RGB 和 CV_8UC1,但它并没有解决问题。我还尝试调整 params 属性,但它没有改变任何东西。伙计们有什么想法吗?

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