Cross Gauge
1 개요
설정한 사각형에 대해서 십자가 도형을 검출하는 측정 알고리즘입니다.
2 알고리즘 상세 설명
Result Image | ||
---|---|---|
![]() |
![]() |
![]() |
Fig. Cross Gauge
측정 사각형을 따라 이미지 변화량이 큰 지점을 검출합니다. 측정할 이미지 변화량을 설정할 수 있으며, 측정 범위 등을 설정하여 동작합니다.밝기 변화 방향이나 경계점을 선택하는 기준에 따라 측정 결과가 다르게 얻을 수 있습니다.
또한 최소 진폭을 설정하여 이미지에서 노이즈라고 판단되는 범위를 무시할 수 있습니다.
결과는 각 지점들의 위치 값으로 계산하여 각 선을 검출 후 십자가를 검출하여 중심 좌표를 반환합니다.
3 파라미터 설정 및 사용 방법
- 세팅 함수
SetMeasurementRegion
- 측정할 위치를 설정하는 함수
- 설정 타입
CFLPoint
- 측정 범위를 설정합니다.
- Rect의 중심 점에 해당합니다.
- Width, Height, 각도와 각 변에 대한 범위를 설정합니다.
CFLRect
- 1개의 Rect와 범위를 지정하여 측정 영역을 설정합니다.
- 범위는 Rect의 각 변에 대해 수직 방향으로 Left/Right 방향의 범위를 설정하여 탐색합니다.
SetTransitionType
- 밝기 변화 방향을 설정합니다.
SetTransitionChoice
- 측정 기준을 선택합니다.
SetThreshold
- 검출 변화량 임계값을 설정합니다.
SetMinimumAmplitude
- 최소 진폭을 설정합니다.
SetThickness
- 측정 선의 두께를 설정합니다
SetSamplingStep
- 표본 추출단위를 설정합니다.
SetOutliersThreshold
- 이상치 범위 계수를 설정합니다.
SetOutliersThresholdCount
- 이상치 처리 횟수를 설정합니다.
EnableOptimalFitting
- 기본값은
true
이며, 밝기 변화 범위에 해당하는 실제 위치를 추정하여 반환합니다. false
로 설정 시 밝기 변화 시작점을 반환합니다.
- 기본값은
- 결과 함수
GetMeasuredObject
- 측정 결과 Rect을 반환합니다.
4 예제 코드
CCrossGauge crossGauge;
//////////////////////////////////
// 공통 파라미터 설정
//////////////////////////////////
//////////////////////////////////
// 추가 옵션 설정
//////////////////////////////////
// 측정할 위치 설정
CFLRect<double> measurementCross(100., 100., 200., 200.);
crossGauge.SetMeasurementRegion(measurementCross, 30);
crossGauge.Execute();
// 측정 결과 꼭지점
CFLPoint<double> resultCross;
crossGauge.GetMeasuredObject(resultCross);
5 관련 알고리즘
CPointGauge
,
CLineleGauge
,
CCircleGauge
,
CEllipseGauge
,
CRectangleGauge
,
CCrossGauge