# OCRMax

OCRMax 함수는 사용자 정의 문자 글꼴을 트레이닝한 후 관심 영역(ROI) 내에서 텍스트 문자열을 읽거나 확인합니다. OCRMax는 분할 및 분류 과정을 통해 광학적 문자 인식을 수행합니다. 분할이 먼저 진행되며, 임계치 기법을 사용해 텍스트 행을 담고 있는 것으로 보이는 영상 영역을 식별합니다. 텍스트가 개별 문자로 분할되고 나면, 문자는 트레이닝되어 글꼴 데이터베이스로 저장됩니다. 분류는 런타임 중에 진행되며, 함수가 분할을 실행한 후 발견되는 모든 텍스트를 "판독"하는 일을 담당합니다. 이는 분할된 문자들의 영상을 글꼴 내 트레이닝된 문자와 비교함으로써 이루어집니다.

OCRMax 함수는 분할 과정에서 ROI 내 텍스트 행의 위치를 결정하고 텍스트의 각도, 기울기, 극성을 계산합니다. 이어서 영역을 정규화하여 원하지 않는 노이즈를 제거한 후 전경 및 배경 픽셀로 이진화합니다. 이진화된 이미지 내에서 Blob 분석을 수행하여 각 문자 조각이 하나의 Blob을 나타내는 문자 조각을 생성합니다. 이어서, 문자 단편들을 그룹화하여 문자를 형성하고, 이들 문자들에게 문자 영역을 할당합니다. 문자 영역은 ROI의 모든 전경(예: 잉크) 픽셀을 둘러싸는 빽빽하고 편집할 수 없는 경계 상자입니다.

이 영역의 텍스트 행은 개별 문자 이미지로 분할되며 각 문자는 편집이 불가능한 문자 사각형으로 묶입니다. ROI는 텍스트 행의 대략적인 위치, 각도 및 기울기를 정의합니다. 필요한 경우 분할 탭의 각도 범위 및 기울기 범위 매개 변수를 사용하여 변동을 보정할 수 있습니다.

## OCRMax 입력

OCRMax 속성 시트는 함수의 결과를 미세 조정할 수 있는 다양한 설정을 제공합니다. 속성 시트 탭에서 일반, 분할, 글꼴 트레이닝, 필딩, 결과, 및 진단에 액세스할 수 있습니다.

또한 OCRMax 속성 시트의 자동 조정 버튼으로 최적의 분할 매개 변수를 자동으로 계산하고 글꼴 데이터베이스를 트레이닝하는 데 사용되는 자동 조정 대화 상자를 실행할 수도 있습니다. 하나 이상의 이미지를 로드하고 자동 조정 대화 상자를 실행한 상태에서 각 이미지를 검사하여 문자들이 올바르게 분할되고 분류되고 있는지 확인합니다. 문자가 올바르게 분할되지 않으면 OCRMax 함수의 자동 조정 알고리즘이 현재 이미지와 이전에 트레이닝된 이미지를 분할하는 최적의 분할 매개 변수를 계산할 것입니다. 트레이닝되는 이미지가 많을수록 OCRMax 함수의 자동 조정 알고리즘의 신뢰성과 정확도가 높아집니다. 만족스러운 결과를 얻으면 자동 조정 대화 상자가 닫히고 새 분할 매개 변수가 적용되며 글꼴 데이터베이스가 새로 트레이닝된 문자로 업데이트됩니다.

참고 : 자동 조정 대화 상자는 분할 매개 변수를 수동으로 조정할 때에 비해 두 가지 큰 이점이 있습니다.

- 2회(분할 매개 변수 조정 시 1회, 트레이닝 시 1회)가 아니라 1회만 이미지를 순환하면 됩니다.
- 문자가 분할 매개 변수 조정 과정에서 자동으로 트레이닝되므로 읽기 정확도가 개선됩니다.

## OCRMax 출력

반환 | 읽은 문자열을 포함하는 OCRMax 데이터 구조. 입력 매개 변수 중 하나라도 유효하지 않은 경우 #ERR.
결과 | OCRMax가 처음으로 셀에 삽입되면 스프레드시트에 다음 OCRMax Vision Data Access functions가 있는 결과표가 자동으로 만들어집니다.
레이블 | 함수 | 설명
문자열 | GetString(OCRMax) | 참조된 데이터 구조의 텍스트 문자열을 반환합니다.
StringPass | GetPassed(OCRMax) | 참조된 데이터 구조에서 전체 문자열의 합격/불합격 상태를 반환합니다.
인덱스 |  | 문자의 인덱스 위치.
문자 | GetChar(OCRMax, 인덱스) | 참조된 데이터 구조에서 인덱스에 해당하는 위치에 있는 문자를 반환합니다.
점수 | GetScore(OCRMax, 인덱스) | 참조된 데이터 구조에서 인덱스에 해당하는 문자의 일치 점수를 반환합니다(0 - 100).
합격 | GetPassed(OCRMax, 인덱스) | 참조된 데이터 구조에서 인덱스에 해당하는 문자의 합격/불합격 상태를 반환합니다.
두 번째 문자 | GetScore(OCRMax, 인덱스0, [인덱스1]) | 두 번째로 점수가 높은 문자를 반환합니다.
두 번째 점수 | GetScore(OCRMax, 인덱스0, [인덱스1]) | 두 번째로 점수가 높은 문자의 점수를 반환합니다.
문자 차이 |  | 인덱스에 해당하는 문자의 점수와 두 번째 점수 값의 차이를 반환합니다.