이번 포스팅에서는 Flood Fill 알고리즘과 Boundary Fill 알고리즘의 차이점을 알아보도록 하겠습니다. 영역 채우기 알고리즘이며 임의의 픽셀에 해당 영역의 원래 색상이 있는지 여부에 따라 구분할 수 있습니다.
플러드 필 알고리즘
- 시드 채우기 알고리즘이라고도 합니다.
- 다차원 배열에 대해 주어진 노드에 연결된 면적을 계산합니다.
- 내부에 다른 색상이 포함된 특정 영역, 즉 이미지의 경계를 채우거나 다시 칠하는 방식으로 작동합니다.
- 경계가 있고 뚜렷한 색상 영역이 있는 이웃이 있는 그림으로 표현됩니다.
- 특정 내부 색상은 이러한 부품을 손상시키기 위해 교체할 수 있습니다.
- 메모리 사용량이 많습니다.
- 비교적 간단한 알고리즘입니다.
- 두 개 이상의 경계 색상을 포함하는 이미지를 처리하는 기능이 있습니다.
- 경계 채우기 알고리즘에 비해 상대적으로 느립니다.
- 무작위 색상을 사용하여 내부를 칠할 수 있으며 기존 픽셀은 새 픽셀로 교체됩니다.
- 효율적인 알고리즘입니다.
픽셀을 연결하여 다중 경계를 만드는 데 두 가지 방법을 사용할 수 있습니다.
- 4 연결 방식:이 방법에서 픽셀은 최대 4개의 이웃을 가질 수 있습니다. 이들은 현재 픽셀의 왼쪽, 오른쪽, 위, 아래 위치에 배치됩니다.
- 8 연결 방식:이 방법에서 픽셀은 최대 8개의 이웃을 가질 수 있습니다. 4개의 대각선 픽셀에 대해 인접 위치를 확인합니다.
경계 채우기 알고리즘
- 경계에 단일 색상이 포함된 경우 알고리즘은 경계 색상을 찾을 때까지 픽셀 단위로 바깥쪽 방향으로 계속 진행됩니다.
- 내부 포인트를 쉽게 선택할 수 있는 대화형 페인팅 패키지 내에서 구현됩니다.
- 알고리즘은 입력이 되는 경계 색상 및 채우기 색상, 내부 점(x, y)의 좌표를 수락하는 것으로 시작됩니다.
- (x, y) 지점에서 알고리즘은 인접 위치를 확인하여 경계 색상의 일부인지 여부를 결정합니다.
- 경계 색상이 아닌 경우 채우기 색상으로 칠해지고 인접한 픽셀이 동일한 조건에 대해 테스트됩니다.
- 경계 색상까지의 모든 픽셀이 확인되면 이 프로세스가 종료됩니다.
- 영역은 단일 색상으로 정의됩니다.
- 메모리 사용량이 더 적습니다.
- 플러드 필 알고리즘에 비해 빠릅니다.
- 플러드 필 알고리즘에 비해 복잡합니다.
- 단일 경계 색상을 포함하는 이미지를 처리할 수 있습니다.