홍수 채우기: 컴퓨터 시각 인식의 동적 지형 탐색
By Fouad Sabry
()
About this ebook
플러드 필이란 무엇인가요?
시드 필이라고도 불리는 플러드 필은 다차원 배열의 특정 노드에 연결된 영역을 결정하고 변경하는 플러딩 알고리즘입니다. 일치하는 속성이 있습니다. 이는 페인트 프로그램의 "버킷" 채우기 도구에서 연결되어 있고 유사한 색상의 영역을 다른 색상으로 채우는 데 사용되며 가서 지뢰 찾기와 같은 게임에서는 어느 조각이 지워지는지 결정하는 데 사용됩니다. 경계 채우기라는 변형은 동일한 알고리즘을 사용하지만 특정 속성이 없는 특정 노드에 연결된 영역으로 정의됩니다.
혜택을 받는 방법
(I) 다음 주제에 대한 통찰력 및 검증:
1장: 홍수 채우기
2장: 스캔라인 렌더링
3장: 깊이 -첫 번째 검색
4장: 쿼드트리
5장: 그래프 순회
6장: 연결된 구성 요소 레이블 지정
7장: 유역(이미지 처리)
8장: 미로 해결 알고리즘
9장: 광선 캐스팅
10장: 상자 흐림
(II) 홍수 채우기에 관한 대중의 주요 질문에 답합니다.
(III) 다양한 분야에서 홍수 채우기 사용에 대한 실제 사례.
이 책은 누구를 위한 것인가요?
전문가, 학부 및 대학원생, 열성팬, 취미생활자 및 모든 종류의 홍수 채우기에 대한 기본 지식이나 정보를 넘어서고 싶은 사람들.
Read more from Fouad Sabry
자율 사물의 새로운 기술 [Korean]
Related to 홍수 채우기
Titles in the series (100)
이미지 히스토그램: 시각적 통찰력 공개, 컴퓨터 비전의 이미지 히스토그램 깊이 탐색 Rating: 0 out of 5 stars0 ratings소음 감소: 선명도 향상, 컴퓨터 비전의 노이즈 감소를 위한 고급 기술 Rating: 0 out of 5 stars0 ratings감마 보정: 컴퓨터 비전의 시각적 선명도 향상: 감마 보정 기술 Rating: 0 out of 5 stars0 ratings수중 컴퓨터 비전: 파도 밑에서 컴퓨터 비전의 깊이 탐구 Rating: 0 out of 5 stars0 ratings인간 시각 시스템 모델: 인식 및 처리 이해 Rating: 0 out of 5 stars0 ratings색 공간: 컴퓨터 비전의 스펙트럼 탐색 Rating: 0 out of 5 stars0 ratings레티넥스: 레티넥스 를 통해 컴퓨팅 비전의 비밀을 밝히다 Rating: 0 out of 5 stars0 ratings호모그래피: 호모그래피: 컴퓨터 비전의 변화 Rating: 0 out of 5 stars0 ratings인페인팅: 컴퓨터 비전의 격차 해소 Rating: 0 out of 5 stars0 ratings이방성 확산: 이방성 확산을 통한 이미지 분석 향상 Rating: 0 out of 5 stars0 ratings컴퓨터 시각 인식: 컴퓨터 비전의 깊이 탐구 Rating: 0 out of 5 stars0 ratings활성 윤곽: 능동 윤곽 기술을 통한 컴퓨터 비전의 발전 Rating: 0 out of 5 stars0 ratings톤 매핑: 톤 매핑: 컴퓨터 비전의 관점 밝히기 Rating: 0 out of 5 stars0 ratings윤곽선 감지: 컴퓨터 비전의 시각적 인식 기술 공개 Rating: 0 out of 5 stars0 ratings시각적 인식: 컴퓨터 시각적 처리에 대한 통찰력 Rating: 0 out of 5 stars0 ratings적응형 필터: 적응 필터링을 통해 컴퓨터 비전 향상 Rating: 0 out of 5 stars0 ratings공동 사진 전문가 그룹: JPEG 표준으로 시각적 데이터의 힘 활용 Rating: 0 out of 5 stars0 ratings히스토그램 균등화: 향상된 시각적 인식을 위한 이미지 대비 향상 Rating: 0 out of 5 stars0 ratings라돈 변환: 시각적 데이터에 숨겨진 패턴 밝히기 Rating: 0 out of 5 stars0 ratings아핀 변환: 시각적 관점 잠금 해제: 컴퓨터 비전의 아핀 변환 탐색 Rating: 0 out of 5 stars0 ratings캐니 엣지 감지기: 시각적 인식의 예술 공개 Rating: 0 out of 5 stars0 ratings컴퓨터 스테레오 비전: 컴퓨터 비전의 깊이 인식 탐구 Rating: 0 out of 5 stars0 ratings필터 뱅크: 컴퓨터 비전의 필터 뱅크 기술에 대한 통찰력 Rating: 0 out of 5 stars0 ratings색상 외관 모델: 컴퓨터 비전의 인식 및 표현 이해 Rating: 0 out of 5 stars0 ratings허프 변환: 컴퓨터 비전에서 Hough 변환의 마법 공개 Rating: 0 out of 5 stars0 ratings컬러 매칭 기능: 컴퓨터 비전의 스펙트럼 감도 이해 Rating: 0 out of 5 stars0 ratings하다마드 변환: 컴퓨터 비전에서 아다마르 변환의 힘 공개 Rating: 0 out of 5 stars0 ratings컬러 모델: 컴퓨터 비전의 스펙트럼 이해: 색상 모델 탐색 Rating: 0 out of 5 stars0 ratings무작위 표본 합의: 컴퓨터 비전의 강력한 추정 Rating: 0 out of 5 stars0 ratings기하학적 해싱: 이미지 인식 및 매칭을 위한 효율적인 알고리즘 Rating: 0 out of 5 stars0 ratings
Related ebooks
선 그리기 알고리즘: 정밀한 이미지 렌더링을 위한 마스터링 기법 Rating: 0 out of 5 stars0 ratings이중선형 보간: 쌍선형 보간을 통해 이미지 해상도 및 선명도 향상 Rating: 0 out of 5 stars0 ratings브레센햄 라인 알고리즘: 컴퓨터 비전을 위한 효율적인 픽셀 완벽한 라인 렌더링 Rating: 0 out of 5 stars0 ratings바이너리 공간 분할: 이진 공간 분할 탐색: 컴퓨터 비전의 기초 및 응용 Rating: 0 out of 5 stars0 ratings스캔라인 렌더링: 스캔라인 렌더링 기법을 통한 시각적 현실감 탐구 Rating: 0 out of 5 stars0 ratings은선 제거: 보이지 않는 것의 공개: 컴퓨터 비전의 비밀 Rating: 0 out of 5 stars0 ratings다각형 컴퓨터 그래픽: 다각형 컴퓨터 그래픽과 컴퓨터 비전의 교차점 탐색 Rating: 0 out of 5 stars0 ratings가장자리 감지: 컴퓨터 비전의 경계 탐색 Rating: 0 out of 5 stars0 ratings캐니 엣지 감지기: 시각적 인식의 예술 공개 Rating: 0 out of 5 stars0 ratings번들 조정: 정확한 재구성을 위한 시각적 데이터 최적화 Rating: 0 out of 5 stars0 ratings계산 기하학: 컴퓨터 비전을 위한 기하학적 통찰력 탐구 Rating: 0 out of 5 stars0 ratings이미지 기반 모델링 및 렌더링: 시각적 현실주의 탐구: 컴퓨터 비전 기술 Rating: 0 out of 5 stars0 ratings스케일 불변 특징 변환: 컴퓨터 비전에서 규모 불변 기능 변환의 힘 공개 Rating: 0 out of 5 stars0 ratings해리스 코너 감지기: 이미지 특징 감지의 마법 공개 Rating: 0 out of 5 stars0 ratings메쉬 생성: 컴퓨터 비전 메시 생성의 발전과 응용 Rating: 0 out of 5 stars0 ratings무작위 표본 합의: 컴퓨터 비전의 강력한 추정 Rating: 0 out of 5 stars0 ratings핀홀 카메라 모델: 전산 광학을 통한 관점 이해 Rating: 0 out of 5 stars0 ratings직접 선형 변환: 컴퓨터 비전의 실제 응용 및 기술 Rating: 0 out of 5 stars0 ratings컴퓨터 비전 기본 매트릭스: '컴퓨터 비전' 영역에 '컴퓨터 비전 기본 매트릭스'라는 제목의 책 부제를 제안해주세요. 추천 자막에는 ':'이 포함되어서는 안 됩니다. Rating: 0 out of 5 stars0 ratings보행자 감지: '컴퓨터 비전' 영역에서 '보행자 감지'라는 제목의 도서에 대한 부제를 제안해 주세요. 추천 자막에는 ':'이 포함되어서는 안 됩니다. Rating: 0 out of 5 stars0 ratings얼룩 감지: 시각적 데이터의 패턴 공개 Rating: 0 out of 5 stars0 ratings피라미드 이미지 처리: 시각적 분석의 깊이 탐구 Rating: 0 out of 5 stars0 ratings2차원 컴퓨터 그래픽: 시각적 영역 탐색: 컴퓨터 비전의 2차원 컴퓨터 그래픽 Rating: 0 out of 5 stars0 ratings문서 모자이크: 문서 모자이크를 통해 시각적 통찰력 확보 Rating: 0 out of 5 stars0 ratings래스터 그래픽 편집기: 시각적 현실의 변화: 컴퓨터 비전에서 래스터 그래픽 편집기 마스터하기 Rating: 0 out of 5 stars0 ratings쿼드트리: 이미지 분석을 위한 계층적 데이터 구조 탐색 Rating: 0 out of 5 stars0 ratings광학 흐름: 컴퓨터 비전의 동적 시각적 패턴 탐색 Rating: 0 out of 5 stars0 ratings허프 변환: 컴퓨터 비전에서 Hough 변환의 마법 공개 Rating: 0 out of 5 stars0 ratings상황별 이미지 분류: 효과적인 분류를 위한 시각적 데이터 이해 Rating: 0 out of 5 stars0 ratings최소제곱: 컴퓨터 비전을 위한 최적화 기술: 최소 제곱법 Rating: 0 out of 5 stars0 ratings
Reviews for 홍수 채우기
0 ratings0 reviews
Book preview
홍수 채우기 - Fouad Sabry
1장: 홍수 채우기
시드 채우기라고도 하는 홍수 채우기는 특정 속성을 가진 특정 노드와 연결된 다차원 배열에서 영역을 선택하고 수정하는 홍수 알고리즘입니다. Go 및 Minesweeper와 같은 게임에서 어떤 조각이 제거되는지 결정하는 데 사용되며 페인트 응용 프로그램의 버킷
채우기 도구에서 연결된 유사한 색상의 영역을 고유한 색조로 채우는 데 사용됩니다. 지정된 노드에 연결되었지만 특정 특성이 없는 영역은 동일한 기술을 사용하는 테두리 채우기로 알려진 변형을 의미합니다.
플러드 필링은 더 예리한 모서리의 특정 픽셀을 놓치기 때문에 채워진 다각형을 그리는 데 적합하지 않습니다. 대신 Nonzero Rule(0이 아닌 규칙)과 Even-Odd Rule(짝수-홀수 규칙)을 선택합니다.
기존 플러드 채우기 알고리즘에는 세 가지 변수, 즉 시작 노드, 대상 색상 및 대체 색상이 필요합니다. 이 메서드는 대상 색인 경로로 시작 노드에 연결된 배열의 모든 노드에 대한 대체 색으로 전환됩니다. 대상 색 대신 경계 채우기를 위해 테두리 색이 제공됩니다.
대신에, 통상적인 방식으로 방법을 일반화하기 위해 두 개의 루틴이 다음 설명에서 제공될 것이다. 이 중에는 픽셀 또는 노드를 채우는 Set과 색상에 따라 채워진 영역 내부에 있는 채워지지 않은 점에 대해 true를 반환하는 Inside가 있습니다. 노드에서 Set 이 호출되면 Inside를 벗어나야 합니다.
모서리에 닿는 노드를 연결된 것으로 계산하는지 여부에 따라 각각 8방향 및 4방향의 두 가지 버전이 있습니다.
다음은 암시적으로 스택 기반인 가장 초기에 알려진 4방향 플러드 필 구현입니다.
홍수 채우기(노드):
1. 노드 가 내부가 아닌 경우 반환합니다.
2. 노드 설정
3. 노드 남쪽으로 한 단계 범람 채우기를 수행합니다.
4. 노드 북쪽으로 한 단계 Flood-fill 을 수행합니다.
5. 노드 서쪽으로 한 단계 Flood-fill 을 수행합니다.
6. 노드의 동쪽으로 한 단계 Flood-fill 을 수행합니다.
7. 반환.
스택 공간이 극도로 제한된 언어 및 상황에서는 위에서 사용한 기술을 구현하기가 쉽지만 작동할 수 없습니다(예: 마이크로 컨트롤러).
스택 오버플로는 재귀를 스택 또는 큐와 같은 데이터 구조로 이동하여 방지됩니다. 데이터 구조의 선택은 확산 패턴에 영향을 미치지만 재귀 호출을 수행하는 대신 노드를 스택 또는 큐로 밀어 넣는다는 점에서 단순 재귀 방법과 유사합니다.
홍수 채우기(노드):
1. Q 를 빈 대기열 또는 스택으로 설정합니다.
2. Q의 끝에 노드를 추가합니다.
3. Q 가 비어 있지 않은 경우:
4. n을 Q의 첫 번째 요소와 같 게 설정합니다.
5. Q에서 첫 번째 요소를 제거합니다.
6. n 이 내부에 있는 경우:
n을 설정합니다.
n의 서쪽에서 Q의 끝에 노드를 추가합니다.
n의 동쪽에서 Q의 끝에 있는 노드를 추가합니다.
n의 북쪽에서 Q의 끝에 노드를 추가합니다.
n의 남쪽에서 Q의 끝에 있는 노드를 추가합니다.
7. Q 가 소진될 때까지 계속 반복합니다.
8. 반환.
스택 또는 대기열에 노드를 추가하기 전에 스택 또는 대기열의 크기를 최소화하기 위해 픽셀 색상을 결정하고 설정합니다.
루프를 사용하여 위와 아래의 픽셀을 대기열에 넣으면서 동서 방향으로 이동합니다(아래의 스팬 채우기 알고리즘과 유사하게 만들기).
순서가 잘못된 프로세서에 병렬화할 수 있는 더 많은 기회를 제공하려면 두 개 이상의 코드 복사본을 추가 스택 및 큐와 인터리브합니다.
여러 스레드를 사용하되 방문 일정이 약간 다르면 한 곳에 모이지 않도록 하는 것이 좋습니다.
버그가 없는 간단한 방법으로 간단하게 만들 수 있습니다.
특히 스택을 사용할 때 메모리를 많이 사용합니다.
가장 많이 채워진 픽셀을 총 4번 테스트합니다.
패턴 채우기는 픽셀 테스트의 결과가 변경되어야 하므로 불가능합니다.
큐 변형에 대한 액세스 패턴은 캐시에 친숙하지 않습니다.
비트플레인 또는 다중 픽셀 단어에 최적화하기 어렵습니다.
주로 스팬, 상수 y를 가진 행으로 작업하면 추가 최적화가 가능합니다. 첫 번째로 게시된 전체 예제는 다음과 같은 기본 원칙에 따라 작동합니다.
시드 포인트 뒤의 왼쪽과 오른쪽을 채웁니다. 가장 왼쪽과 가장 오른쪽에 채워진 점(lx와 rx)을 각각 추적합니다. 이렇게 하면 범위가 설정됩니다.
현재 시드 포인트 위와 아래의 lx에서 rx로 스캔하여 더 많은 시드 포인트를 검색합니다.
스캔 프로세스는 다음 범위의 시작 부분에 있는 시드 지점만 다시 시작해야 하도록 최적화됩니다. 대기열은 스팬을 먼저 탐색하는 반면, 스택은 깊이 측면에서 스팬을 먼저 조사합니다.
가장 많이 채워진 픽셀을 총 세 번 확인함에도 불구하고 이 접근 방식은 구현 및 인용 측면에서 가장 일반적입니다.
fn 채우기 (x, y) :
Inside(x, y) 가 아닌 경우 반환
let s = 새로운 빈 스택 또는 대기열
s에 (x, y)를 추가합니다.
s가 비어 있지 않은 경우:
s에서 (x, y) 를 제거합니다.
lx = x 라고 하자
내부 (lx - 1, y) :
세트(lx - 1, y)
lx = lx - 1
내부 (x, y) :
세트(x, y)
x = x + 1
스캔(lx, x - 1, y + 1, s)
스캔(lx, x - 1, y - 1, s)
fn 스캔(lx, rx, y, s):
span_added = 거짓이라고 하자
lx의 x .. 수신:
내부(x, y)가 아닌 경우:
span_added = 거짓
그렇지 않으면 span_added :
s에 (x, y)를 추가합니다.
span_added = 참
시간이 지남에 따라 다음과 같은 개선 사항이 적용되었습니다.
새로운 스캔은 채워진 픽셀만 감지하기 때문에 조부모 범위 내에 있는 경우 큐에 대기할 필요가 없습니다.
또한 새로운 스캔이 조부모 스팬을 가로지르는 경우 돌출부(U턴 및 W턴)만 스캔해야 합니다.
씨앗을 찾으면서 채울 수 있습니다.
fn 채우기 (x, y) :
Inside(x, y) 가 아닌 경우 반환
let s = 새로운 빈 대기열 또는 스택
s에 (x, x, y, 1)을 더합니다.
s에 (x, x, y - 1, -1)을 더합니다.
s가 비어 있지 않은 경우:
s에서 (x1, x2, y, dy) 를 제거합니다.
x = x1 이라고 하자
내부(x, y)인 경우:
내부 (x-1, y) :
세트(x - 1, y)
x = 엑스 - 1
x가 x1< 경우:
s에 (x, x1-1, y-dy, -dy)를 추가합니다.
x1