1.1 Hough Transform Line
1 개요
Hough Transform Line 알고리즘은 허프 변환을 통해 직선을 검출하는 알고리즘 입니다.
2 알고리즘 상세 설명
알고리즘 동작 결과 | |
---|---|
![]() |
![]() |
검출된 직선 결과
3 파라미터 설정 및 사용 방법
-
세팅 함수
SetHoughShape
- 검출할 객체 타입을 설정합니다.
EHoughShape_Line
직선 검출EHoughShape_Circle
원 검출
SetPixelThreshold
- 검출 기준 임계값을 설정합니다.
- 다채널 이미지에 대해서는 Format Converter를 사용하여 1채널 이미지로 변환 후에 논리값 확인이 진행됩니다. 1비트 이미지와 같은 극단적인 입력의 경우, 이 과정에서 생각과 다르게 동작할 수도 있습니다.
SetLogicalCondition
- 검출 기준에 논리 조건을 설정합니다.
SetPixelThreshold
로 설정한 임계값에 대해 이 논리 조건을 통과한 픽셀들에 대해서만 검출이 진행됩니다.
- 검출 기준에 논리 조건을 설정합니다.
SetAngleResolution
- 검출하는 직선의 각도 간격을 설정합니다.
SetMinPixelCount
- 최소 픽셀 카운트 갯수을 설정합니다.
SetNearbyLineFilter
- 인접한 거리에 필터링 값을 입력합니다. 인접 선분 검출 필터가 설정되어 있을 때만 의미 있게 작동합니다.
SetMaxDistanceFromZero
- 이미지의 원점을 기준으로 범위를 설정합니다. 해당 범위를 지나는 직선만 검출합니다.
SetMaxCount
- 출력할 객체의 최대 개수를 설정합니다.
EnableCannyEdgeAppliance
- 캐니 에지 검출기 사용 유무를 설정합니다.
EnableAdjacentFilterAppliance
- 인접한 선분에 대한 검출 필터를 설정합니다.
-
결과 함수
GetResultLines
검출된 Line 결과 값을 얻어오는 함수
4 예제 코드
CHoughTransform houghLine; // 알고리즘 객체 생성
CFLImage fliSourceImage; // 이미지 객체 생성
fliSourceImage.Load(L"C:/Sudoku.flif"); // 이미지 파일 로드
houghLine.SetSourceImage(fliSourceImage); // 이미지 설정
houghLine.SetHoughShape(CHoughTransform::EHoughShape_Line); // 검출할 타입 설정
houghLine.SetPixelThreshold(128.0); // 검출 기준 임계값 설정
houghLine.SetLogicalCondition(ELogicalCondition_Less); // 논리 조건 설정
houghLine.SetAngleResolution(1); // 선분 각 해상도 설정
houghLine.SetMinPixelCount(300); // 최소 누적 픽셀 기준 설정
houghLine.SetNearbyLineFilter(20); // 인접 거리 필터 설정
houghLine.SetMaxCount(1000); // 최대 결과 출력 갯수
houghLine.Execute();
CFLFigureArray flfaLines; // 결과를 받을 객체 생성
houghLine.GetResultLines(flfaLines); // 결과 반환