2014-01-17 7 views
0

EmguCV (.NET 버전의 OpenCV) 프로젝트에서 작업 중이며 행을 찾기 위해 확률적인 Hough 변환을 사용하고 있습니다.Canny Edge Detection을 두 번 수행하십시오 -> 더 나은 라인 감지?

처음에는 나는 canny-operator를 수행하고있었습니다. 이후에 Hough 변환을 수행합니다.

Gray cannyThreshold = new Gray(50); 
Gray cannyThresholdLinking = new Gray(300); 

Image<Gray, Byte> cannyEdges = gray.Canny(cannyThreshold, cannyThresholdLinking); 

LineSegment2D[] linesFound_temporary = cannyEdges.HoughLines 
(
    cannyThreshold,   // 1. Parameter 
    cannyThresholdLinking, // 2. Parameter 
    1,      // 3. Parameter 
    Math.PI/360.0,  // 4. Parameter 
    gray.Width * 0.2,  // 5. Parameter 
    gray.Width * 0.4,  // 6. Parameter 
    gray.Width * 0.1  // 7. Parameter 
)[0]; 

나중에 나는 HoughLines-Method가 이미 가장자리 감지를 통합했다는 것을 깨달았습니다.

그럼에도 불구하고, 추가 감지 기능을 사용하지 않으면 선 탐지 기능이 더 우수하고 안정적입니다.

아무에게도 설명 할 수 있습니까? 왜 이런 일이 발생합니까? 아니면 경험이있는 사람이 있습니까?

답변

0

내 프로젝트를 수행하는 동안 동일한 경험을했습니다. 나는 그것이 둘 다 기능에 주어진 매개 변수에 dépends 생각합니다. 첫 번째 canny가 너무 많은 정보와 줄을 제거하지 않으면 두 번째 기능이 빠를 것입니다. "첫 번째 단계"를 수행하여 많은 정보를 제거하지만 매우 명확한 선을 남기면 Hough Line은 할 일이 거의 없습니다. 그러나 처음으로 Hough Line의 매개 변수를 조정하면 거의 동일한 결과를 얻을 수 있다는 것을 알았습니다.

희망이 있습니다.