16.6.1 Hough Transform Circle
1 개요
Hough Transform Circle 알고리즘은 허프 변환을 통해 원을 검출하는 알고리즘 입니다.
2 알고리즘 상세 설명
알고리즘 동작 결과 | |
---|---|
![]() |
![]() |
검출된 원 결과
3 파라미터 설정 및 사용 방법
-
세팅 함수
SetHoughShape
- 검출할 객체 타입을 설정합니다.
EHoughShape_Line
직선 검출EHoughShape_Circle
원 검출
SetPixelThreshold
- 검출 기준 임계값을 설정합니다.
- 다채널 이미지에 대해서는 Format Converter를 사용하여 1채널 이미지로 변환 후에 논리값 확인이 진행됩니다. 1비트 이미지와 같은 극단적인 입력의 경우, 이 과정에서 생각과 다르게 동작할 수도 있습니다.
SetLogicalCondition
- 검출 기준에 논리 조건을 설정합니다.
SetPixelThreshold
로 설정한 임계값에 대해 이 논리 조건을 통과한 픽셀들에 대해서만 검출이 진행됩니다.
- 검출 기준에 논리 조건을 설정합니다.
SetPixelResolution
- 최소 반지름과 최대 반지름 사이에서 검출하는 원의 반지름 단위를 설정합니다.
SetAngleResolution
- 원주상에서 검출하는 에지 픽셀의 각도의 단위를 설정합니다.
SetMinRadius
- 검출할 원의 최소 반지름을 설정합니다.
SetMaxRadius
- 검출할 원의 최대 반지름을 설정합니다.
SetConfidence
- Confidence 값을 설정합니다. 설정한 Confidence 값 이상의 원을 검출합니다.
EnableCannyEdgeAppliance
- 캐니 에지 검출기 사용 유무를 설정합니다.
EnableAdjacentFilterAppliance
- 인접한 원에 대한 검출 필터를 설정합니다.
SetMaxCount
- 출력할 객체의 최대 개수를 설정합니다.
-
결과 함수
GetResultCircles
검출된 Circle 결과 값을 얻어오는 함수
4 예제 코드
CHoughTransform houghCircle; // 알고리즘 객체 생성
CFLImage fliSourceImage; // 이미지 객체 생성
fliSourceImage.Load(L"C:/coins.flif"); // 이미지 파일 로드
houghCircle.SetSourceImage(fliSourceImage); // 이미지 설정
houghCircle.SetHoughShape(CHoughTransform::EHoughShape_Circle); // 검출할 타입 설정
houghCircle.SetPixelThreshold(200); // 검출 기준 임계값 설정
houghCircle.SetLogicalCondition(ELogicalCondition_Less); // 논리 조건 설정
houghCircle.SetConfidence(70); // Confidence 설정
houghCircle.SetMinRadius(35); // 최소 반지름 설정
houghCircle.SetMaxRadius(40); // 최대 반지름 갯수 설정
houghCircle.SetMaxCount(100); // 최대 결과 개수 설정
houghCircle.EnableAdjacentFilterAppliance(true); // 인접한 원 검출 설정
houghCircle.Execute();
CFLFigureArray flfaCircle; // 결과를 받을 객체 생성
houghCircle.GetResultCircles(flfaLines); // 결과 반환