2016-07-14 4 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, 바이너리 프레임입니다 : 문제는 detector-> 감지 선에 있었다 내가 OpenCV의 3을 사용하고 pic

을 (fgMaskMOG2, myBlobs); 나는 다른 주제를 읽었으며 다른 사람들이 똑같이했기 때문에 문제가 코드에 있다고 생각하지 않는다. 프레임을 CV_GRAY2RGB 및 CV_8UC1로 변환하려고 시도했지만 문제가 해결되지 않습니다. params 속성을 조정하려고 시도했지만 아무 것도 변경하지 않습니다. 어떤 생각이야?

+0

문제를 조사하는 동안 무엇을 찾았습니까? –

+0

왜 나는 downvotes 사람을 받고 있습니까? :) 저는 아직 연구 중이며 디버깅 중입니다. 아직 운이 없습니다. – shjnlee

+0

어떤 방법 으로든 문제를 조사했다고 표시하지 않았기 때문에 아마 투표를 거절 할 것입니다. 이 커뮤니티는 게임을하지 않으면 용서할 수 없습니다. 나는 너와 같은 문제를 겪었으니 너무 기분이 좋지는 마라. –

답변

0

내가 발견 한 문제는 올바른 라이브러리를 사용하지 않았다는 것입니다. 디버그 모드로 opencv_world.dll을 사용합니다. 릴리스 모드로 전환하고 문제를 해결했습니다.