노이즈 제거는 다양한 이미지 처리 작업에 적용할 수 있습니다. 컨볼루션 섹션에 설명된 가장자리 감지 커널 외에도 Earth Engine에는 여러 가지 특수화된 가장자리 감지 알고리즘이 있습니다. 카니 에지 감지 알고리즘(Canny 1986) 은 4개의 별도 필터를 사용하여 대각선, 세로, 가로 가장자리를 식별합니다. 계산은 수평 및 수직 방향의 1차 미분 값을 추출하고 경사도 크기를 계산합니다. 크기가 더 작은 그라데이션은 억제됩니다. 고주파 노이즈를 제거하려면 원하는 경우 가우스 커널로 이미지를 사전 필터링합니다. 예를 들면 다음과 같습니다.
코드 편집기 (JavaScript)
// Load a Landsat 8 image, select the panchromatic band. var image = ee.Image('LANDSAT/LC08/C02/T1/LC08_044034_20140318').select('B8'); // Perform Canny edge detection and display the result. var canny = ee.Algorithms.CannyEdgeDetector({ image: image, threshold: 10, sigma: 1 }); Map.setCenter(-122.054, 37.7295, 10); Map.addLayer(canny, {}, 'canny');
threshold
매개변수는 최소 기울기 크기를 결정하고 sigma
매개변수는 고주파 노이즈를 제거하는 가우시안 사전 필터의 표준편차 (SD)입니다. Earth Engine은 가장자리 감지기에서 선 추출을 위해 Hough 변환(Duda and Hart 1972)을 구현합니다. 이전 예를 계속하여 다음을 사용하여 Canny 검출기에서 선이 있는 영역을 추출합니다.
코드 편집기 (JavaScript)
// Perform Hough transform of the Canny result and display. var hough = ee.Algorithms.HoughTransform(canny, 256, 600, 100); Map.addLayer(hough, {}, 'hough');
Earth Engine의 또 다른 전문 알고리즘은 zeroCrossing()
입니다. 제로 크로싱은 오른쪽, 하단 또는 대각선 오른쪽 하단 픽셀의 부호가 반대인 픽셀로 정의됩니다. 이러한 픽셀 중 부호가 다른 픽셀이 있으면 현재 픽셀이 1 (제로 크로싱)로 설정되고, 그렇지 않으면 0으로 설정됩니다. 가장자리를 감지하기 위해 이미지 2차 미분의 추정치에 제로 크로싱 알고리즘을 적용할 수 있습니다.
다음은 zeroCrossing()
를 사용하여 가장자리 감지를 실행하는 방법을 보여줍니다.
코드 편집기 (JavaScript)
// Load a Landsat 8 image, select the panchromatic band. var image = ee.Image('LANDSAT/LC08/C02/T1/LC08_044034_20140318').select('B8'); Map.addLayer(image, {max: 12000}); // Define a "fat" Gaussian kernel. var fat = ee.Kernel.gaussian({ radius: 3, sigma: 3, units: 'pixels', normalize: true, magnitude: -1 }); // Define a "skinny" Gaussian kernel. var skinny = ee.Kernel.gaussian({ radius: 3, sigma: 1, units: 'pixels', normalize: true, }); // Compute a difference-of-Gaussians (DOG) kernel. var dog = fat.add(skinny); // Compute the zero crossings of the second derivative, display. var zeroXings = image.convolve(dog).zeroCrossing(); Map.setCenter(-122.054, 37.7295, 10); Map.addLayer(zeroXings.selfMask(), {palette: 'FF0000'}, 'zero crossings');
캘리포니아 샌프란시스코 공항 근처 지역의 제로 크로싱 출력은 그림 1과 같이 표시됩니다.
