체인 코드 란 무엇입니까?
컴퓨터 그래픽 및 이미지 처리에서 체인 코드는 객체의 윤곽을 흑백 또는 흑백 이미지로 인코딩하는 데 사용되는 알고리즘입니다. 결과 코드 시퀀스는 객체가 위치한 이미지를 기준으로 객체의 윤곽선을 그리는 방법을 설명하거나 알고리즘이 시작된 윤곽선의 위치를 기준으로 한 방향 모음 일 수 있습니다. 오브젝트를 다시 그리려면 따라갈 수 있습니다. 이 코드는 공식에 따라 정규화 한 다음 다른 체인 코드와 비교하여 두 객체가 동일한 지 여부를 확인할 수 있습니다. 체인 코드는 컴퓨터 비전 프로그램에서 객체를 분리하거나 이미지 처리에서 이미지 분할을 위해 사용될 수 있지만, 광학 문자 인식 (OCR) 프로그램에서 더 일반적으로 사용될 수 있습니다.
체인 코드에 대해 몇 가지 확립 된 알고리즘이 있지만 기본 개념은 각각 동일합니다. 먼저, 개체의 가장자리는 일반적으로 래스터 이미지를 통해 픽셀 단위로 이동하여 위치합니다. 위치를 찾으면 위치가 기록되고 주변 가장자리가 감지됩니다. 감지 알고리즘이 시계 방향 또는 반 시계 방향으로 이동할지 여부에 따라 현재 위치는 원래 위치로 돌아올 때까지 가장자리를 따라 한 방향 또는 다른 방향으로 이동합니다.
현재 위치가 움직일 때마다 체인 코드에 숫자가 기록됩니다. 이 숫자는 일반적으로 개체의 가장자리를 따라 이동 한 방향을 나타냅니다. 예를 들어, 체인 코드 알고리즘이 오른쪽에서 왼쪽으로 직선을 따르는 경우, 모서리가 왼쪽으로 추적 될 때마다 왼쪽의 숫자 코드가 코드 끝에 추가됩니다. 결과 코드는 시퀀스가 임의의 시작점과 각 단계에 배치 된 픽셀에서 이어지면 객체의 윤곽이 다시 그려지는 숫자 문자열입니다.
코드를 구성하는 일련의 숫자가 완성되면 다른 체인 코드 시퀀스와 비교할 수 있도록 여러 가지 알고리즘을 적용 할 수 있습니다. 먼저 가장 낮은 정수 값이 결정될 때까지 시작 번호를 회전시켜 숫자를 정규화합니다. 이러한 방식으로, 인코딩이 시작된 각 객체의 위치에 관계없이 동일한 외곽선을 가진 두 객체를 비교할 수 있습니다.
더 복잡한 다른 버전의 체인 코드 알고리즘이 존재합니다. 여기에는 개체의 윤곽선이 선으로 연결된 일련의 좌표로 설명되는 벡터 기반 인코딩이 포함되지만,이 방법은 세밀한 윤곽선에 사용될 때 손실 될 수 있습니다. RLE (run-length encoding)을 사용하여 매우 크거나 복잡한 객체의 코드를 더욱 압축하여보다 효율적인 방식으로 저장할 수있는 알고리즘 버전도 있습니다.