2016-07-14 56 views
-1

您好Stackoverflow社區,SimpleBlobDetector不能運行

我遇到了一個問題,我需要你的幫助。我有一個閾值墊,我試圖檢測它的任何一滴。我的設置是:

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); 

但是程序在運行後停止,沒有在我的圖像上突出顯示關鍵點。這是墊fgMaskMOG2,二進制幀,這些代碼行之前創建的: pic

我使用的OpenCV 3.問題是在該行detector->檢測(fgMaskMOG2,myBlobs);我已閱讀其他主題,並不認爲問題出現在代碼中,因爲其他人也這樣做了。我試圖將幀轉換爲CV_GRAY2RGB和CV_8UC1,但它不能解決問題。我也試圖調整params屬性,但它不會改變任何東西。任何想法的傢伙?

+0

在研究問題時發現了什麼? –

+0

爲什麼我會得到那些低調的傢伙? :) 我還在研究和調試,沒有運氣呢。 – shjnlee

+0

你可能會因爲你沒有以任何方式表明你甚至研究過這個問題而沮喪。如果你不玩遊戲,這個社區可能是無情的。我遇到了同樣的問題,所以不要太難過。 –

回答

0

我發現的問題是我沒有使用正確的庫。我使用opencv_world.dll進行調試模式。我切換到釋放模式,它解決了問題。