2014-01-21 3 views
1

- 아래의 업데이트/대답을 참조하십시오. 사용자 오류! -Opencv Imgproc.HoughLines() 튜닝 길이 매개 변수

짧은 줄을 찾기 위해 Imgproc.HoughLines() 매개 변수를 설정하는 방법을 이해하려고합니다. 난 전혀 작동하지 않는이 같은 시도했다 : 나는 마지막 두 매개 변수에 대해 여러 값을 시도

Imgproc.HoughLines(matSrc, matLines, 1, Math.PI/180, houghThreshCurrent, 25, 10); 

,하지만 아무도 제대로 작동하지 않습니다 - 그것은 더 라인을 발견하지 않습니다. 그러나 마지막 두 매개 변수없이 메서드 버전을 사용하면 원하는 선을 찾을 수 있습니다. 단락이 얼마나 낮더라도 짧은 선이 아닙니다. 그것에 대해

srn For the multi-scale Hough transform, it is a divisor for the distance resolution rho. The coarse accumulator distance resolution is rho and the accurate accumulator resolution is rho/srn. If both srn=0 and stn=0, the classical Hough transform is used. Otherwise, both these parameters should be positive. 
stn For the multi-scale Hough transform, it is a divisor for the distance resolution theta. 

누군가가 번역 또는 제공 할 수있는 값의 예 :

다음은 마지막 두 PARAMS에 대한 문서입니까? :)

나는 또한 probalistic 버전 인 HoughLinesP()를 사용해 보았습니다. 제 유스 케이스에서는별로 잘 작동하지 않는 것 같습니다. 다른 옵션은 내 이미지를 더 큰 크기로 스케일하는 것입니다.이 경우, 선 거리 매개 변수가 작동하지 않으면 기본 HoughLines()가 작동합니다.


답 : 내 문제는 내가 HoughLinesP에 의해 반환 된 매트() HoughLines()에 의해 반환되는 이외의 다른 형식이었다 몰랐습니다. HoughLinesP()에서 결과를 XY 좌표로 변환 할 때 극좌표에서 변환했습니다! HoughLinesP()는 우리의 요구에 비해 월등히 우수하며 매개 변수가 선 길이를 튜닝하는 데 효과적입니다. 아주 좋은 예는 여기에서 찾을 수 있습니다 https://dsp.stackexchange.com/questions/10467/influence-of-image-size-to-edge-detection-in-opencv

+0

내가 그 값을 설정하는 방법을 잘 모르겠어요,하지만 난 다른 접근 방식을 제안 할 수 있습니다 : - 세그먼트 라인을 사용하여 detector : http://www.ipol.im/pub/art/2012/gjmr-lsd/ – GilLevi

답변

1

: http://docs.opencv.org/doc/tutorials/imgproc/imgtrans/hough_lines/hough_lines.html

CV_PI 대신 Math.PI의를 사용해보십시오 여기에 내 방식의 오류를 볼 도왔 링크가있어? 당신의 문턱 때문에 다른 이유가있을 수 있습니다. 50과 같은 값을 삽입 해 봅니다 (숫자를 가지고 놀아보십시오). 마지막 2 개의 값인, 값을 삽입하기 전에 0으로두고 테스트 해 볼 수 있습니다. 마지막 2의 기본값은 일반적으로 0입니다.

작동하지 않는 데는 여러 가지 이유가있을 수 있으므로 천천히 원인을 찾아 보겠습니다. 또한, 당신이 Hough를 적용하기 전에 Canny it 또는 뭔가를 했나요? 도움이

희망, 내 제안이 유용한 지 알려와 도움 (:. 건배

+0

제안 해 주셔서 감사 합니다만, Hough 선 길이 매개 변수를 사용하지 않았습니다. 대신에 우리는 조금 더 많은 이미지 pre 우리가 원했던 라인 주변의 노이즈를 줄이기 위해 : 마스킹, Canny, Gaussian, Contours, approxPoly 등을 이용한 배경 뺄셈. 우리는 임계 값을 변경하여 100을 시작하고 발견 될 때까지 루프를 통해 매번 감소했습니다 원하는 라인 수/교차 수/수직 수 – medloh

+0

차이점은 무엇입니까? CV_PI와 Math.PI 사이의 ence ?? –