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,一个二进制框架,在这些代码行之前创建:
我正在使用opencv 3.问题出在线路检测器 - >检测(fgMaskMOG2,myBlobs);我已经阅读了其他主题,并且不认为问题出在代码中,因为其他人也做了同样的事情。我试图将帧转换为CV_GRAY2RGB和CV_8UC1,但它不能解决问题。我也尝试调整params属性,但它不会改变任何东西。任何想法的人?
答案 0 :(得分:0)
我发现的问题是我没有使用正确的库。我使用opencv_world.dll进行调试模式。我切换到发布模式,它解决了问题。