# CompareImage

CompareImage는 관심 영역을 템플릿 이미지와 비교하고 특정 허용 오차 내에서 템플릿과 일치하지 않는 부분이 흰색 픽셀로 된 이미지를 반환합니다.

## CompareImage 개요

CompareImage는 속성 시트의 트레이닝실행 확인란을 선택하면 현재 이미지에서 템플릿을 추출하도록 설계되었습니다. 사용자가 해당 확인란을 선택 취소하고 나면 CompareImage는 템플릿의 픽셀을 입력 이미지로 매핑하고 비교하여 회색조 출력 이미지를 생성할 수 있습니다. 특정 허용 오차 내에서 템플릿 이미지와 일치하지 않는 픽셀은 밝은 픽셀 또는 흰색 픽셀로 표시됩니다.

## CompareImage 입력

매개 변수 | 설명
이미지 | 이 매개 변수는 이미지 데이터 구조를 포함하는 스프레드시트 셀의 셀 참조를 사용해야 합니다. 기본적으로 이 매개 변수는 함수에 의해 반환되는 Image 데이터 구조를 포함하는 셀인 A0을 참조합니다. 이 매개 변수는 비전 도구 이미지 함수에서 반환하는 결과 등의 다른 Image 데이터 구조를 참조할 수도 있습니다.
Fixture | Fixture 입력 또는 비전 도구 함수의 결과 이미지 좌표계를 기준으로 관심 영역(ROI)을 정의합니다. ROI를 Fixture 기준으로 설정하면 Fixture가 회전하거나 변환된 경우에도 ROI가 Fixture 기준으로 회전하거나 변환됩니다. 기본 설정은 이미지의 왼쪽 상단 모서리인 (0, 0, 0)입니다.
X | 이미지 좌표계에서의 X 오프셋.
Y | 이미지 좌표계에서의 Y 오프셋.
세타 | 이미지 좌표계 내에서 이미지 X축으로부터의 회전(+/-360도 시계 방향).
영역 | 관심 영역(ROI)이라고도 하며, 이미지 중 분석 대상이 되는 영역을 지정합니다. 영역 매개 변수를 두 번 클릭하면 변환하고 회전할 수 있는 대화형 그래픽 모드를 만듭니다. 이 매개 변수를 선택하고 속성 시트의 작업 편집 도구 모음에서 영역 최대화 버튼을 누르면 영역이 자동으로 확대되어 전체 이미지가 포함됩니다.
X | Fixture 좌표에서 원점으로부터의 x 오프셋.
Y | Fixture 좌표에서 원점으로부터의 y 오프셋.
폭 | 영역의 x 축 방향 크기.
높이 | 영역의 y 축을 방향 크기.
각도 | Fixture 좌표에서의 방향.
참고 : Fixture 및 영역 매개 변수는 이미지의 경계 내에서 정의되어야 합니다. 그렇지 않으면 함수가 #ERR을 반환됩니다.
트레이닝실행 | 현재 이미지에서 템플릿을 추출하는 시기를 ROI 크기가 변경된 경우와 트레이닝실행 매개 변수를 선택한 경우 중에서 지정합니다.
0 = 꺼짐(기본값) | ROI 크기가 변경된 경우에만 현재 이미지에서 템플릿을 추출합니다. 사용자가 템플릿 이미지를 선택(또는 "트레이닝")한 후에 선택하면 "트레이닝" 매개 변수가 비활성화되고 템플릿을 덮어쓰지 않도록 합니다.
1 = 켜짐 | 현재 이미지에서 템플릿을 추출합니다. 사용자가 템플릿 이미지를 선택(또는 "트레이닝")하고 있는 중에는 이 옵션을 선택합니다.
가장자리범위 | 이미지 비교 시의 허용 오차를 가장자리 주변의 픽셀 수(0 - 24, 기본값 = 3)로 지정합니다. 이 숫자가 크면 템플릿과 입력 이미지 간 가장자리 일치의 엄격성이 낮습니다(즉, 불완전하게 일치하는 가장자리가 출력 이미지의 차이로 기술될 가능성이 적습니다).
보간 | 차이의 출력 이미지를 생성하기 위해 입력 이미지에 템플리트를 매핑할 때 수행할 픽셀 비교 유형을 지정합니다.
0 = 인접 이웃(기본값) | 템플릿 내의 각 픽셀을 입력 이미지 내의 가장 가까운 픽셀과 비교하여 픽셀별로 정규화된 회색조 차이를 계산합니다. 속도는 빠르지만 정확도는 떨어집니다.
1 = 쌍일차(Bilinear) | 템플릿 내의 각 픽셀을 (입력 이미지 내에 있는 가장 가까운 픽셀 4개의 회색조 값을 나타내는) 가중 평균과 비교하여, 픽셀별로 정규화된 회색조 차이를 계산합니다. 정확도는 높지만 속도는 느립니다.
표시 | 이미지에 어떤 그래픽 오버레이가 표시될지 지정합니다.
0 = 모두 숨기기(기본값) | CompareImage 함수를 포함하는 셀이 스프레드시트에 강조 표시되는 경우를 제외하고 사용 가능한 그래픽 항목이 표시되지 않습니다.
1 = 결과 그래픽만 | 처리된 이미지가 항상 표시됩니다.
2 = 입력 그래픽만 | 입력 이미지 영역과 연결된 그래픽 항목이 항상 표시됩니다.
3 = 모두 표시: 입력 그래픽 및 템플릿 이미지 | 입력 이미지 영역과 연결된 그래픽 항목이 항상 표시됩니다. 그러나 CompareImage 속성 시트가 열려 있는 동안에는 템플릿 이미지도 표시됩니다.

## CompareImage 출력

반환 | 처리된 이미지를 포함하는 Image 데이터 구조. 입력 매개 변수 중 하나라도 유효하지 않은 경우 #ERR.

## CompareImage 예

이 예에서는 CompareImage를 사용하여 "양호한" 개스킷의 템플릿 이미지와 생산 라인에 있는 개스킷의 입력 이미지를 비교합니다.

먼저, 사용자는 스프레드시트에 CompareImage를 삽입한 후 속성 시트의 "영역"이라는 단어를 두 번 클릭하여 ROI를 정의합니다. 이렇게 하면 속성 시트가 사라져 이미지에 오버레이되어 표시된 빨간색 ROI 상자가 드러납니다. 사용자는 커서를 사용하여 상자를 이동하거나 크기를 조정한 후 작업 편집 도구 모음의 확인 버튼을 클릭하거나 Enter 키를 눌러 선택을 확인하고 속성 시트로 돌아갑니다.

다음으로 사용자는 다른 데이터 구조로 도구를 Fixture합니다. 사용자는 Fixture를 통해 개체의 모든 인스턴스에 나타나는 고유한 형상을 식별하고 이를 후속 비전 도구의 기준점으로 지정합니다. 이렇게 하면 물체가 생산 라인에서 약간 회전하거나 이동하더라도 정밀한 비교 또는 검사가 이루어질 수 있습니다.

함수를 Fixture하기 위해 사용자는 속성 시트에서 "Fixture"라는 단어를 클릭하고 속성 시트의 도구 모음에서 절대 참조 또는 상대 참조 버튼을 클릭합니다.

속성 시트가 사라져 In-Sight 스프레드시트가 드러납니다. 사용자는 커서를 이동하여 스프레드시트 있는 다른 데이터 구조(예: FindPatterns)의 행, 열, 각도 셀을 Fixture의 참조로 선택하고 작업 편집 도구 모음의 확인 버튼을 클릭하거나 Enter 키를 눌러 선택을 확인하고 속성 시트로 돌아갑니다.

이어서 사용자는 속성 시트의 트레이닝실행 확인란을 선택하여 이미지 촬상이 수동으로 트리거될 때 템플릿 이미지(아래 참조)를 자동으로 추출할 수 있도록 합니다. (하지만 트레이닝실행 확인란을 선택하면 이미지 촬상이 트리거되므로 현재 이미지가 허용 가능하다면 이미지를 설정하고 수동으로 촬상을 트리거해도 됩니다.) 템플릿을 선택하면 템플릿을 덮어쓰지 않도록 확인란을 선택 해제합니다.

다른 매개 변수의 기본 설정을 수락하고 속성 시트에서 확인을 클릭하면 이 예의 구성이 완료되고 입력 이미지에 함수가 적용됩니다.

런타임에서는 도구가 입력 이미지를 템플릿 이미지와 비교합니다. "불량" 입력 이미지는 흰색 표시로 손상된 개스킷(아래 참조)으로 구성될 수 있습니다.

둘 사이의 차이점은 회색조 출력 이미지에서 밝은 픽셀로 표시됩니다(아래 참조).

또 다른 도구(예: DetectBlobs, 아래 참조)가 출력 이미지를 참조하여 개스킷이 검사에 합격인지 불합격인지 여부를 결정할 수 있습니다.