16.6.1 Hough Transform Circle

1 개요

Hough Transform Circle 알고리즘은 허프 변환을 통해 원을 검출하는 알고리즘 입니다.

2 알고리즘 상세 설명

알고리즘 동작 결과
원본원본 이미지 결과검사 결과
검출된 원 결과

3 파라미터 설정 및 사용 방법

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); // 결과 반환
CHoughTransform houghCircle = new CHoughTransform(); // 알고리즘 객체 생성

CFLImage fliSourceImage = new CFLImage(); // 이미지 객체 생성
fliSourceImage.Load("C:/coins.flif"); // 이미지 파일 로드

houghCircle.SetSourceImage(ref 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(out flfaLines); // 결과 반환