Drawing Match
1.1.1 개요
도면 파일이나 Figure 객체를 Load해서 기하학적 정보 패턴을 학습하고 검사 이미지에서 이미지 내의 동일 혹은 유사한 패턴을 탐지하는 알고리즘입니다.
1.1.2 알고리즘 상세 설명
도면 파일을 입력하여 학습을 진행하고 해당 정보를 바탕으로 탐색을 진행합니다.
학습 도면 데이터 | 매칭 결과 |
---|---|
![]() |
![]() |
도면 매칭 결과
1.1.3 학습 방법
- FLImaging® 개발 스튜디오을 실행합니다.

- Menu 검색창에 Drawing Match를 검색하거나 Advanced Functions에 Match 카테고리에 Drawing을 클릭합니다.

- 학습할 도면을 선택합니다.
- Drawing Figure에 우측 ...을 클릭합니다.
- 원하는 도면 파일에 경로를 설정합니다.
- 학습 결과를 확인하고 싶으면 Display view를 설정하시면 됩니다.




- 학습을 진행합니다.
- 버튼(F6)을 클릭합니다.




해당 동작을 코드로 표현하면 다음과 같습니다.
CDrawingMatch drawingMatch; // 알고리즘 객체 선언
drawingMatch.SetDrawing(L"Drawing.gbr"); // 도면 파일 경로
drawingMatch.SetPixelAccuracy(1.000000, 1.000000); // 분해능 설정
drawingMatch.Learn(); // 학습 진행
1.1.4 검사 방법
- 검사를 진행할 이미지를 불러옵니다.

- 검사할 이미지 파일을 선택하고 열기 버튼 클릭


- 검사할 뷰를 선택합니다.
- 검사할 이미지를 불러오기한 뷰를 선택합니다.

- 검사 옵션을 설정합니다.

Scale Min
: 탐색할 패턴의 최소 크기 비율을 설정합니다.
Scale Max
: 탐색할 패턴의 최대 크기 비율을 설정합니다.
Angle Bias
: 패턴 탐색 시 기준이 되는 회전 각도를 설정합니다.
Angle Tolerance
: 허용되는 회전 각도의 범위를 설정합니다.
Minimum Score
: 탐색된 패턴의 최소 신뢰도 점수를 설정합니다.
Max Object
: 이미지에서 탐색할 패턴의 최대 개수를 설정합니다.
Interpolation
: 탐색 시 이미지 보간 방식을 설정합니다.
- 검사를 진행합니다.
- Exectue 버튼 클릭(F5)

- 검사 동작 완료

해당 동작을 코드로 표현하면 다음과 같습니다.
CDrawingMatch drawingMatch; // 학습한 알고리즘 객체와 동일해야합니다.
CFLImage fliSourceImage; // 이미지 객체 선언
fliSourceImage.Load(L"D:/Image.flif"); // 이미지 파일 로드
drawingMatch.SetSourceImage(fliSourceImage); // 검사 이미지 입력
drawingMatch.Execute(); // 검사 동작
int64_t i64Size = drawingMatch.GetResultCount(); // 검사 결과 갯수 확인
for(int64_t i = 0; i < i64Size; ++i) // 검사 결과 데이터 가져오기
{
CDrawingMatch::SResult results;
CFLFigureArray flfaResultPoints;
drawingMatch.GetResult(i, results);
}
1.1.5 학습 동작 함수
Learn
- 입력된 설정 값으로 학습을 진행합니다.
SetLearnImage
- 학습할 이미지를 설정합니다.
SetLearnROI
- 학습 관심 영역(ROI)을 설정합니다.
SetPixelAccuracy
- 분해능 수치 값을 설정합니다.
SetDistanceUnit
- 분해능 단위를 설정합니다.
1.1.6 검사 동작 함수
Execute
- 검출 이미지에 대한 검사를 진행합니다.
SetMaxObject
- 탐색 최대 개수를 설정합니다.
- 기본값은 1입니다.
- 0 이하 설정시 최대 검출 개수로 설정됩니다.
SetMinimumDetectionScore
- 탐색에서 허용될 수 있는 결과 최소 점수를 설정합니다.
- 기본값은 0.5입니다.
SetScaleRange
- 탐색하고자 하는 패턴의 크기에 최소/최대 비율을 설정합니다.
- 기본값은 1입니다.
SetAngleBias
- 탐색의 기준각도를 설정합니다.
- 기본값은 0입니다.
SetAngleTolerance
- 탐색의 각도 허용범위를 설정합니다.
- 기본값은 0입니다.
EnableInterpolation
- 보간 방식 활성화 유무를 설정합니다.
- 기본값은 true입니다.
1.1.5 동작 결과 취득 함수
GetResult
- 개별 배열 요소의 결과를 취득합니다.
CGeometricMatch::SResult
타입으로 반환합니다.
1.1.7 학습 데이터 Save & Load 방법 설명
학습한 데이터 파일을 저장 및 불러오기가 가능합니다.
이미 학습한 파일을 저장하여 편리하게 관리할 수 있습니다.
1.1.7.1 Save 동작 설명
학습을 진행한 후 해당 학습 데이터 파일을 파일로 저장할 수 있습니다.
Learn 동작을 진행한 이후 저장을 진행 할 수 있습니다.
멤버함수 | 파라미터 | 설 명 | ||
---|---|---|---|---|
Save | const Base::CFLString |
strFilePath | IN | 학습 파일 경로 |
CDrawingMatch drawingMatch; // 학습이 이미 진행된 알고리즘 객체
// 학습 파일 Save 진행
drawingMatch.Save(L"파일 경로 입력"); // 파일 포멧은 .flg
1.1.7.2 Load 동작 설명
저장한 학습 파일을 불러오기가 가능합니다.
저장한 파일을 불러와서 바로 검사 진행이 바로 가능합니다.
멤버함수 | 파라미터 | 설 명 | ||
---|---|---|---|---|
Load | const Base::CFLString |
strFilePath | IN | 학습 파일 경로 |
CDrawingMatch drawingMatch; // 알고리즘 객체
// 학습 파일 Load 진행
drawingMatch.Load(L"파일 경로 입력"); // 파일 포멧은 .flg
// 패턴 탐색
CFLImage fliSourceImage; // 검사할 이미지 객체
drawingMatch.SetSourceImage(fliSourceImage); // 검사 이미지 입력
drawingMatch.Execute(); // 검사 동작