1 개요
Generalized Hough Transform 알고리즘은 허프 변환을 통해 사용자가 지정한 도형을 검출하는 알고리즘 입니다.
2 알고리즘 상세 설명
알고리즘 동작 결과 |
대상 이미지 및 검출 도형 |
검사 결과 |
검출된 도형 결과
3 파라미터 설정 및 사용 방법
-
세팅 함수
SetPatternROI
SetPixelThreshold
- 검출 기준 임계값을 설정합니다.
- 다채널 이미지에 대해서는 Format Converter를 사용하여 1채널 이미지로 변환 후에 논리값 확인이 진행됩니다.
SetAngleTolerance
- 검출할 도형의 회전각 범위를 설정합니다. 단위는 Degree 입니다.
SetScaleTolerance
- 검출할 도형의 크기 비율 범위를 설정합니다. 단위는 Percent 입니다.
SetConfidence
- Confidence 값을 설정합니다. 설정한 Confidence 값 이상의 도형을 검출합니다. 0 ~ 1 사이의 값을 갖습니다.
SetMaxCount
-
결과 함수
GetDetectedObjects
검출된 도형 결과 값을 얻어오는 함수
4 예제 코드
CGeneralizedHoughTransform generalizedHoughTransform;
CFLImage fliSourceImage;
generalizedHoughTransform.SetSourceImage(fliSourceImage);
CFLCircle<int64_t> flfPatternROI(400, 520, 49, 0, 0, 360, EArcClosingMethod_EachOther);
generalizedHoughTransform.SetPatternROI(&flfPatternROI);
generalizedHoughTransform.SetPixelThreshold(128);
generalizedHoughTransform.SetConfidence(0.6);
generalizedHoughTransform.SetAngleTolerance(45);
generalizedHoughTransform.SetScaleTolerance(10);
generalizedHoughTransform.SetMaxCount(10);
generalizedHoughTransform.Execute();
CFLFigureArray flfaDetectedObjects;
generalizedHoughTransform.GetDetectedObjects(flfaDetectedObjects);
CGeneralizedHoughTransform generalizedHoughTransform = new CGeneralizedHoughTransform();
CFLImage fliSourceImage = new CFLImage();
generalizedHoughTransform.SetSourceImage(fliSourceImage);
CFLCircle<long> flfPatternROI = new CFLCircle<long>(400, 520, 49, 0, 0, 360, EArcClosingMethod.EachOther);
generalizedHoughTransform.SetPatternROI(flfPatternROI);
generalizedHoughTransform.SetPixelThreshold(128);
generalizedHoughTransform.SetConfidence(0.6);
generalizedHoughTransform.SetAngleTolerance(45);
generalizedHoughTransform.SetScaleTolerance(10);
generalizedHoughTransform.SetMaxCount(10);
generalizedHoughTransform.Execute();
CFLFigureArray flfaDetectedObjects = new CFLFigureArray();
generalizedHoughTransform.GetDetectedObjects(flfaDetectedObjects);
generalizedHoughTransform = CGeneralizedHoughTransform()
fliSourceImage = CFLImage()
generalizedHoughTransform.SetSourceImage(fliSourceImage)
flfPatternROI = CFLCircle[int](400, 520, 49, 0, 0, 360, EArcClosingMethod.EachOther)
generalizedHoughTransform.SetPatternROI(flfPatternROI)
generalizedHoughTransform.SetPixelThreshold(128)
generalizedHoughTransform.SetConfidence(0.6)
generalizedHoughTransform.SetAngleTolerance(45)
generalizedHoughTransform.SetScaleTolerance(10)
generalizedHoughTransform.SetMaxCount(10)
generalizedHoughTransform.Execute()
flfaDetectedObjects = CFLFigureArray()
generalizedHoughTransform.GetDetectedObjects(flfaDetectedObjects)