2016-08-21 4 views
0

가 나는 다음과 같은 이미지를 가지고에서 OpenCV CPP 대 MATLAB에서 변형.호우는

내가 MATLAB에 다음 코드를 사용

[centersDark, radiiDark] = imfindcircles(closed_pic,[Rmin Rmax],'ObjectPolarity','dark'); 

내가 cpp에있는 다음 코드를 사용 : 나는 바이너리 이미지에 CPP에 무릎 transforn를 실행하려고하면 또한

cv::medianBlur(mat, mat, 5);  
cv::Mat grayMat;  
cv::cvtColor(mat, grayMat, cv::COLOR_BGR2GRAY);  
std::vector<cv::Vec3f> circles1;  
cv::HoughCircles(grayMat, circles1, CV_HOUGH_GRADIENT, 1, 20, 30, 30, 0, 0); 

, I 돈 어떤 탐지가되지 않습니다. 작동 시키려면 어떻게해야합니까?

답변

0

매개 변수를 살펴보면 출력이 허풍 원에 대한 입력으로 이해되는 경우 중간 흐림 효과가 출력됩니다. 20 개의 매개 변수는 최소 중심 거리입니다. 원이 가까울 때. Alg가 실패 ​​할 수 있습니다. 또한 canny() 가장자리 감지에 전달 된 임계 값처럼 보이는 30,30 개의 매개 변수를 사용하고 있으며 첫 번째 및 두 번째 임계 값입니다. 또한 이것 역시이 임계 값에 대한 문제입니다. undestand 매개 변수가 문서에서 예제를 사용하고 매개 변수 만 업데이트하는 경우 ..이 예제에서는 찾으려는 대상의 최소 2 분 및 최대 반경을 나타냅니다 ..

HoughCircles(gray, circles, CV_HOUGH_GRADIENT, 
      2, gray->rows/4, 200, 100); 
+0

안녕하세요 ... 최대 0 분으로 작성하면 신경 쓰지 마세요 ... 동일한 매개 변수가 다른 그림에서 작동하므로 문제가 없다고 생각합니다. – ilana

+0

괜찮습니다. 내가 게시물을 업데이 트하면, 코드가 0이라고 말하면 0은 최대 (cols, rows)와 min radius를 0으로 놓는다. – globalex